- 浏览: 595439 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
刚刚提到说 Linux 的登录文件主要是由 syslogd 在负责,那么你的 Linux 是否有启动 syslogd 呢?而且是否有配置启动时启动呢?呵呵!检查一下先:
看到 syslog 这个服务名称了吧?所以知道他已经在系统中工作罗!好了,既然本章主要是讲登录文件,那么你知道登录文件的内容是如何展现的? syslog 的配置档在哪里?如何配置?如果你的 Linux 主机想要当作整个局域网的登录文件服务器时,又该如何配置? 底下就让我们来玩玩这玩意!
登录文件内容的一般格式
一般来说,系统产生的信息经过 syslog 而记录下来的数据中,每条信息均会记录底下的几个重要数据:
事件发生的日期与时间;
发生此事件的主机名称;
启动此事件的服务名称 (如 samba, xinetd 等) 或函式名称 (如 libpam ..);
该信息的实际数据内容。
当然,这些资讯的『详细度』是可以修改的,而且,这些资讯可以作为系统除错之用呢! 我们拿登录时一定会记载帐号资讯的 /var/log/secure 为例好了:
我们拿第一笔数据来说明好了,该数据是说:『在三月14日 (Mar 14) 的下午 15:38 分,由 www 这部主机的 atd [PID 为 18701] 传来的消息,这个消息是透过 pam_unix 这个模块所提出的。信息内容为 root (uid=0) 这个帐号已经开启 atd 的活动了。』有够清楚吧! 那请您自行翻译一下后面的 4 条信息内容是什么喔!
其实还有很多的资讯值得查阅的呢!尤其是 /var/log/messages 的内容。记得一个好的系统管理员, 要常常去『巡视』登录文件的内容喔!尤其是发生底下几种情况时:
当你觉得系统似乎不太正常时;
某个 daemon 老是无法正常启动时;
某个使用者老是无法登陆时;
某个 daemon 运行过程老是不顺畅时;
还有很多啦!反正觉得系统不太正常,就得要查询查询登录文件就是了。
syslog 的配置档:/etc/syslog.conf
什么?登录文件还有配置档?喔!不是啦~是 syslogd 这个 daemon 的配置档啦! 我们现在知道 syslogd 可以负责主机产生的各个资讯的登录,而这些资讯本身是有『严重等级』之分的, 而且,这些数据最终要传送到哪个文件去是可以修改的呢,所以我们才会在一开头的地方讲说, 每个 Linux distributions 放置的登录文件档名可能会有所差异啊!
基本上, syslog 针对各种服务与信息记录在某些文件的配置档就是 /etc/syslog.conf, 这个文件规定了『(1)什么服务 (2)的什么等级信息 (3)需要被记录在哪里(装置或文件)』 这三个咚咚,所以配置的语法会是这样:
我们将上面的数据简单的分为三部分来说明:
服务名称
syslog 本身有规范一些服务,你可以透过这些服务来储存系统的信息。syslog 认识的服务主要有底下这些: (可使用 man 3 syslog 查询到相关的资讯)
服务类别 说明
auth (authpriv) 主要与认证有关的机制,例如 login, ssh, su 等需要帐号/口令的咚咚;
cron 就是例行性工作排程 cron/at 等产生信息记录的地方;
daemon 与各个 daemon 有关的信息;
kern 就是核心 (kernel) 产生信息的地方;
lpr 亦即是列印相关的信息啊!
mail 只要与邮件收发有关的信息纪录都属於这个;
news 与新闻群组服务器有关的东西;
syslog 就是 syslogd 这支程序本身产生的资讯啊!
user, uucp, local0 ~ local7 与 Unix like 机器本身有关的一些信息。
上面谈到的都是 syslog 自行制订的服务名称,软件开发商可以透过呼叫上述的服务名称来记录他们的软件。 举例来说, sendmail 与 postfix 及 dovecot 都是与邮件有关的软件,这些软件在设计登录文件记录时,都会主动呼叫 syslogd 内的 mail 服务名称 (LOG_MAIL),所以上述三个软件 (sendmail, postfix, dovecot) 产生的信息在 syslog 看起来,就会『是 mail 』类型的服务了。我们可以将这个概念绘制如底下的图示来理解:
tu
另外,每种服务所产生的数据量其实差异是很大的,举例来说, mail 的登录文件信息多的要命, 每一封信件进入后, mail 至少需要记录『寄信人的资讯;与收信者的信息』等等; 而如果是用来做为工作站主机的,那么登陆者 (利用 login 登录主机处理事情) 的数量一定不少,那个 authpriv 所管辖的内容可就多的要命了。
为了让不同的资讯放置到不同的文件当中,好让我们分门别类的进行登录文件的管理, 所以罗,将各种类别的服务之登录文件,记录在不同的文件里面,就是我们 /etc/syslog.conf 所要作的规范了!
信息等级
同一个服务所产生的信息也是有差别的,有启动时仅通知系统而已的一般信息 (information), 有出现还不至於影响到正常运行的警告信息 (warn) ,还有系统硬件发生严重错误时,所产生的重大问题信息 (error 等等); 信息到底有多少种严重的等级呢?基本上,syslog 将信息分为七个主要的等级,依序是这样的(由不重要排列到重要信息等级):
等级 等级名称 说明
1 info 仅是一些基本的信息说明而已;
2 notice 比 info 还需要被注意到的一些资讯内容;
3 warning
(warn) 警示的信息,可能有问题,但是还不至於影响到某个 daemon 运行的资讯;基本上, info, notice, warn 这三个信息都是在告知一些基本资讯而已,应该还不至於造成一些系统运行困扰;
4 err
(error) 一些重大的错误信息,例如配置档的某些配置值造成该服务服法启动的资讯说明, 通常藉由 err 的错误告知,应该可以了解到该服务无法启动的问题呢!
5 crit 比 error 还要严重的错误资讯,这个 crit 是临界点 (critical) 的缩写,这个错误已经很严重了喔!
6 alert 警告警告,已经很有问题的等级,比 crit 还要严重!
7 emerg
(panic) 疼痛等级,意指系统已经几乎要死机的状态! 很严重的错误资讯了。通常大概只有硬件出问题,导致整个核心无法顺利运行,就会出现这样的等级的信息吧!
除了这些有等级的信息外,还有两个特殊的等级,那就是 debug(错误侦测等级) 与 none (不需登录等级) 两个,当我们想要作一些错误侦测,或者是忽略掉某些服务的资讯时, 就用这两个咚咚吧!
特别留意一下在信息等级之前还有 [.=!] 的连结符号喔!他代表的意思是这样的:
. :代表『比后面还要高的等级 (含该等级) 都被记录下来』的意思,例如: mail.info 代表只要是 mail 的资讯,而且该资讯等级高於 info (含 info 本身)时,就会被记录下来的意思。
.=:代表所需要的等级就是后面接的等级而已, 其他的不要!
.!:代表不等於, 亦即是除了该等级外的其他等级都记录。
一般来说,我们比较常使用的是『.』这个连结符号啦!^_^
信息记录的档名或装置或主机
再来则是这个信息要放置在哪里的纪录了。通常我们使用的都是记录的文件啦!但是也可以输出到装置呦! 例如打印机之类的!也可以记录到不同的主机上头去呢!底下就是一些常见的放置处:
文件的绝对路径:通常就是放在 /var/log 里头的文件啦!
打印机或其他:例如 /dev/lp0 这个打印机装置
使用者名称:显示给使用者罗!
远程主机:例如 @www.vbird.tsai 当然啦,要对方主机也能支持才行!
*:代表『目前在线上的所有人』,类似 wall 这个命令的意义!
syslog.conf 语法练习
基本上,整个 syslog 的配置档就只是这样而已,底下我们来思考一些例题,好让你可以更清楚的知道如何配置 syslogd 啊!
例题:
如果我要将我的 mail 相关的数据给他写入 /var/log/maillog 当中,那么在 /etc/syslog.conf 的语法如何设计?
答:
基本的写法是这样的:
mail.info /var/log/maillog
注意到上面喔,当我们的等级使用 info 时,那么『任何大於 info 等级(含 info 这个等级)之上的信息, 都会被写入到后面接的文件之中!』这样可以了解吗?也就是说,我们可以将所有 mail 的登录资讯都纪录在 /var/log/maillog 里面的意思啦!
例题:
我要将新闻群组数据 (news) 及例行性工作排程 (cron) 的信息都写入到一个称为 /var/log/cronnews 的文件中,但是这两个程序的警告信息则额外的记录在 /var/log/cronnews.warn 中, 那该如何配置我的 syslog.conf 呢?
答:
很简单啦!既然是两个程序,那么只好以分号来隔开了,此外,由於第二个指定文件中,我只要记录警告信息, 因此配置上需要指定『.=』这个符号,所以语法成为了:
news.*;cron.* /var/log/cronnews
news.=warn;cron.=warn /var/log/cronnews.warn
上面那个『.=』就是在指定等级的意思啦!由於指定了等级,因此,只有这个等级的信息才会被纪录在这个文件里面呢! 此外你也必须要注意,news 与 cron 的警告信息也会写入 /var/log/cronnews 内喔!
例题:
我的 messages 这个文件需要记录所有的资讯,但是就是不想要记录 cron, mail 及 news 的资讯,那么应该怎么写才好?
答:
可以有两种写法,分别是:
*.*;news,cron,mail.none /var/log/messages
*.*;news.none;cron.none;mail.none /var/log/messages
使用『,』分隔时,那么等级只要接在最后一个即可,如果是以『;』来分的话, 那么就需要将服务与等级都写上去罗!这样会配置了吧!
CentOS 5.x 默认的 syslog.conf 内容
了解语法之后,我们来看一看 syslog 有哪些系统服务已经在记录了呢?就是瞧一瞧 /etc/syslog.conf 这个文件的默认内容罗! (注意!如果需要将该行做为注解时,那么就加上 # 符号就可以啦)
上面总共仅有十一行配置值,每一行的意义是这样的:
#kern.*:只要是核心产生的信息,全部都送到 console(终端机) 去。console 通常是由外部装置连接到系统而来, 举例来说,很多封闭型主机 (没有键盘、萤幕的系统) 可以透过连接 RS232 连接口将信息传输到外部的系统中, 例如以笔记本计算机连接到封闭主机的 RS232 插口。这个项目通常应该是用在系统出现严重问题而无法使用默认的萤幕观察系统时, 可以透过这个项目来连接取得核心的信息。(注1)
*.info;mail.none;news.none;authpriv.none;cron.none:由於 mail, news, authpriv, cron 等类别产生的信息较多, 且已经写入底下的数个文件中,因此在 /var/log/messages 里面就不记录这些项目。除此之外的其他信息都写入 /var/log/messages 中。这也是为啥我们说这个 messages 文件很重要的缘故!
authpriv.*:认证方面的信息均写入 /var/log/secure 文件;
mail.*:邮件方面的信息则均写入 /var/log/maillog 文件;
cron.*:例行性工作排程均写入 /var/log/cron 文件;
*.emerg:当产生最严重的错误等级时,将该等级的信息以 wall 的方式广播给所有在系统登陆的帐号得知, 要这么做的原因是希望在线的使用者能够赶紧通知系统管理员来处理这么可怕的错误问题。
uucp,news.crit:uucp 是早期 Unix-like 系统进行数据传递的通讯协议,后来常用在新闻群组的用途中。 news 则是新闻群组。当新闻群组方面的资讯有严重错误时就写入 /var/log/spooler 文件中;
local7.*:将本机启动时应该显示到萤幕的信息写入到 /var/log/boot.log 文件中;
后面的 news.=crit、news.=err、news.notice 则主要在分别记录新闻群组产生的不同等级的信息。
在上面的第四行关於 mail 的记录中,在记录的文件 /var/log/maillog 前面还有个减号『 - 』是干嘛用的?由於邮件所产生的信息比较多,因此我们希望邮件产生的信息先储存在速度较快的内存中 (buffer) ,等到数据量够大了才一次性的将所有数据都填入磁碟内,这样将有助於登录文件的存取性能。 只不过由於信息是缓存在内存内,因此若不正常关机导致登录资讯未回填到登录文件中,可能会造成部分数据的遗失。
此外,每个 Linux distributions 的 syslog.conf 配置差异是颇大的,如果你想要找到相对应的登录资讯时, 可得要查阅一下 /etc/syslog.conf 这个文件才行!否则可能会发生分析到错误的资讯喔!举例来说, 鸟哥有自己写一支分析登录文件的 script,这个 script 是依据 Red Hat 系统默认的登录文件所写的,因此不同的 distributions 想要使用这支程序时,就得要自行设计与修改一下 /etc/syslog.conf 才行喔!否则就可能会分析到错误的资讯罗。 那么如果你有自己的需要而得要修订登录文件时,该如何进行?
自行添加登录文件文件功能
如果你有其他的需求,所以需要特殊的文件来帮你记录时,呵呵!别客气,千万给他记录在 /etc/syslog.conf 当中,如此一来,你就可以重复的将许多的资讯记录在不同的文件当中,以方便你的管理呢! 让我们来作个练习题吧!如果你想要让『所有的资讯』都额外写入到 /var/log/admin.log 这个文件时, 你可以怎么作呢?先自己想一想,并且作一下,再来看看底下的作法啦!
很简单吧!如此一来,所有的资讯都会写入 /var/log/admin.log 里面了!
登录文件的安全性配置
好了,由上一个小节里面我们知道了 syslog.conf 的配置,也知道了登录文件内容的重要性了, 所以,如果幻想你是一个很厉害的黑客,想利用他人的计算机干坏事,然后又不想留下证据, 你会怎么作?对啦!就是离开的时候将屁股擦干净,将所有可能的信息都给他抹煞掉, 所以第一个动脑筋的地方就是登录文件的清除工作啦~ 如果你的登录文件不见了,那该怎办?
伤脑筋呢!有没有办法防止登录文件被删除?或者是被 root 自己不小心变更呢?有呀!拔掉网络线或电源线就好了……呵呵! 别担心,基本上,我们可以透过一个隐藏的属性来配置你的登录文件,成为『 只可以添加数据,但是不能被删除 』的状态,那么或许可以达到些许的保护!不过,如果你的 root 帐号被破解了,那么底下的配置还是无法保护的,因为你要记得『 root 是可以在系统上面进行任何事情的 』,因此,请将你的 root 这个帐号的口令配置的安全一些!千万不要轻忽这个问题呢!
既然如此,那么我们就来处理一下隐藏属性的东东吧!我们在第七章谈到过 lsattr 与 chattr 这两个东西啦!如果将一个文件以 chattr 配置 i 这个属性时,那么该文件连 root 都不能杀掉!而且也不能新增数据,嗯!真安全!但是,如此一来登录文件的功能岂不是也就消失了? 因为没有办法写入呀!所以罗,我们要使用的是 a 这个属性!你的登录文件如果配置了这个属性的话,那么 他将只能被添加,而不能被删除!嗯! 这个项目就非常的符合我们登录文件的需求啦!因此,你可以这样的添加你的登录文件的隐藏属性。
加入了这个属性之后,你的 /var/log/messages 登录文件从此就仅能被添加,而不能被删除,直到 root 以『 chattr -a /var/log/messages 』取消这个 a 的参数之后,才能被删除或移动喔!
虽然,为了你登录文件的资讯安全,这个 chattr 的 +a 旗标可以帮助你维护好这个文件, 不过,如果你的系统已经被取得 root 的权限,而既然 root 可以下达 chattr -a 来取消这个旗标, 所以罗,还是有风险的啦!此外,前面也稍微提到,新手最好还是先不要添加这个旗标, 很容易由於自己的忘记,导致系统的重要信息无法记录呢。
基本上,鸟哥认为,这个旗标最大的用处除了在保护你登录文件的数据外, 他还可以帮助你避免掉不小心写入登录文件的状况喔。要注意的是,当『 你不小心 "手动" 更动过登录文件后,例如那个 /var/log/messages , 你不小心用 vi 开启他,离开却下达 :wq 的参数,呵呵!那么该文件未来将不会再继续进行登录动作! 』这个问题真的很常发生!由於你以 vi 储存了登录文件,则 syslogd 会误判为该文件已被更动过, 将导致 syslogd 不再写入该文件新的内容~很伤脑筋的!
要让该登录文件可以继续写入,你只要重新启动 syslog (/etc/init.d/syslog restart) 即可。 不过,总是比较麻烦。所以啊,如果你针对登录文件下达 chattr +a 的参数,嘿嘿! 未来你就不需要害怕不小心更动到该文件了!因为无法写入嘛!除了可以新增之外~ ^_^
不过,也因为这个 +a 的属性让该文件无法被删除与修改,所以罗,当我们进行登录文件轮替时 (logrotate) ,将会无法移动该登录文件的档名呢!所以会造成很大的困扰。这个困扰虽然可以使用 logrotate 的配置档来解决,但是,还是先将登录文件的 +a 旗标拿掉吧!
登录文件服务器的配置
我们在之前稍微提到的,在 syslog.conf 文件当中,可以将登录数据传送到打印机或者是远程主机上面去。这样做有什么意义呢? 如果你将登录资讯直接传送到打印机上面的话,那么万一不小心你的系统被 cracker 所入侵, 他也将你的 /var/log/ 砍掉了,怎么办?没关系啊!反正你已经将重要数据直接以打印机记录起来了, 嘿嘿!他是无法逃开的啦!^_^
再想像一个环境,你的办公室内有十部 Linux 主机,每一部负责一个网络服务, 你为了要了解每部主机的状态,因此,你常常需要登陆这十部主机去查阅你的登录文件~ 哇!光用想的,每天要进入十部主机去查数据,想到就烦~没关系~这个时候我们可以让某一部主机当成 『登录文件服务器』,用他来记录所有的十部 linux 主机的资讯,嘿嘿!这样我就直接进入一部主机就可以了! 省时又省事,真方便~
那要怎么达到这样的功能呢?很简单啦,我们 CentOS 5.x 默认的 syslog 本身就已经具有这个登录文件服务器的功能了, 只是默认并没有启动该功能而已。你可以透过 man syslogd 去查询一下相关的选项就能够知道啦! 既然是登录文件服务器,那么我们的 Linux 主机当然会启动一个端口来监听了,那个默认的端口就是 UDP 的 514 喔!
tu
如上图所示,服务器会启动监听的端口,用户端则将登录文件再转出一份送到服务器去。 而既然是登录文件『服务器』,所以当然有服务器与用户端 (client) 罗!这两者的配置分别是这样的:
透过这个简单的动作,你的 Linux 主机已经可以接收来自其他主机的登录资讯了! 当然啦,你必须要知道网络方面的相关基础,这里鸟哥只是先介绍, 未来了解了网络相关资讯后,再回头来这里瞧一瞧先! ^_^
至於 client 端的配置就简单多了!只要指定某个资讯传送到这部主机即可! 举例来说,我们的登录文件服务器 IP 为 192.168.1.100 ,而 client 端希望所有的数据都送给主机, 所以,可以在 /etc/syslog.conf 里面新增这样的一行:
再重新启动 syslog 后,立刻就搞定了!而未来主机上面的登录文件当中,每一行的『主机名称』就会显示来自不同主机的资讯了。 很简单吧! ^_^。接下来,让我们来谈一谈,那么如何针对登录文件来进行轮转 (rotate) 呢?
转自:http://vbird.dic.ksu.edu.tw/linux_basic/0570syslog_2.php
[root@www ~]# ps aux | grep syslog USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 4294 0.0 0.0 1716 568 ? Ss Mar31 0:00 syslogd -m 0 # 瞧!确实有启动的! [root@www ~]# chkconfig --list syslog syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off # 默认情况下,文字介面与图形介面 (3, 5) 都有启动喔!
看到 syslog 这个服务名称了吧?所以知道他已经在系统中工作罗!好了,既然本章主要是讲登录文件,那么你知道登录文件的内容是如何展现的? syslog 的配置档在哪里?如何配置?如果你的 Linux 主机想要当作整个局域网的登录文件服务器时,又该如何配置? 底下就让我们来玩玩这玩意!
登录文件内容的一般格式
一般来说,系统产生的信息经过 syslog 而记录下来的数据中,每条信息均会记录底下的几个重要数据:
事件发生的日期与时间;
发生此事件的主机名称;
启动此事件的服务名称 (如 samba, xinetd 等) 或函式名称 (如 libpam ..);
该信息的实际数据内容。
当然,这些资讯的『详细度』是可以修改的,而且,这些资讯可以作为系统除错之用呢! 我们拿登录时一定会记载帐号资讯的 /var/log/secure 为例好了:
root@www ~]# cat /var/log/secure 1 Mar 14 15:38:00 www atd[18701]: pam_unix(atd:session): session opened for user root by (uid=0) 2 Mar 14 15:38:00 www atd[18701]: pam_unix(atd:session): session closed for user root 3 Mar 16 16:01:51 www su: pam_unix(su-l:auth): authentication failure; logn ame=vbird uid=500 euid=0 tty=pts/1 ruser=vbird rhost= user=root 4 Mar 16 16:01:55 www su: pam_unix(su-l:session): session opened for user root by vbird(uid=500) 5 Mar 16 16:02:22 www su: pam_unix(su-l:session): session closed for user root |--日期/时间---|-H-|-----服务与相关函数-------|--信息说明------>
我们拿第一笔数据来说明好了,该数据是说:『在三月14日 (Mar 14) 的下午 15:38 分,由 www 这部主机的 atd [PID 为 18701] 传来的消息,这个消息是透过 pam_unix 这个模块所提出的。信息内容为 root (uid=0) 这个帐号已经开启 atd 的活动了。』有够清楚吧! 那请您自行翻译一下后面的 4 条信息内容是什么喔!
其实还有很多的资讯值得查阅的呢!尤其是 /var/log/messages 的内容。记得一个好的系统管理员, 要常常去『巡视』登录文件的内容喔!尤其是发生底下几种情况时:
当你觉得系统似乎不太正常时;
某个 daemon 老是无法正常启动时;
某个使用者老是无法登陆时;
某个 daemon 运行过程老是不顺畅时;
还有很多啦!反正觉得系统不太正常,就得要查询查询登录文件就是了。
syslog 的配置档:/etc/syslog.conf
什么?登录文件还有配置档?喔!不是啦~是 syslogd 这个 daemon 的配置档啦! 我们现在知道 syslogd 可以负责主机产生的各个资讯的登录,而这些资讯本身是有『严重等级』之分的, 而且,这些数据最终要传送到哪个文件去是可以修改的呢,所以我们才会在一开头的地方讲说, 每个 Linux distributions 放置的登录文件档名可能会有所差异啊!
基本上, syslog 针对各种服务与信息记录在某些文件的配置档就是 /etc/syslog.conf, 这个文件规定了『(1)什么服务 (2)的什么等级信息 (3)需要被记录在哪里(装置或文件)』 这三个咚咚,所以配置的语法会是这样:
服务名称[.=!]信息等级 信息记录的档名或装置或主机 # 底下以 mail 这个服务产生的 info 等级为例: mail.info /var/log/maillog_info # 这一行说明:mail 服务产生的大於等於 info 等级的信息,都记录到 # /var/log/maillog_info 文件中的意思。
我们将上面的数据简单的分为三部分来说明:
服务名称
syslog 本身有规范一些服务,你可以透过这些服务来储存系统的信息。syslog 认识的服务主要有底下这些: (可使用 man 3 syslog 查询到相关的资讯)
服务类别 说明
auth (authpriv) 主要与认证有关的机制,例如 login, ssh, su 等需要帐号/口令的咚咚;
cron 就是例行性工作排程 cron/at 等产生信息记录的地方;
daemon 与各个 daemon 有关的信息;
kern 就是核心 (kernel) 产生信息的地方;
lpr 亦即是列印相关的信息啊!
mail 只要与邮件收发有关的信息纪录都属於这个;
news 与新闻群组服务器有关的东西;
syslog 就是 syslogd 这支程序本身产生的资讯啊!
user, uucp, local0 ~ local7 与 Unix like 机器本身有关的一些信息。
上面谈到的都是 syslog 自行制订的服务名称,软件开发商可以透过呼叫上述的服务名称来记录他们的软件。 举例来说, sendmail 与 postfix 及 dovecot 都是与邮件有关的软件,这些软件在设计登录文件记录时,都会主动呼叫 syslogd 内的 mail 服务名称 (LOG_MAIL),所以上述三个软件 (sendmail, postfix, dovecot) 产生的信息在 syslog 看起来,就会『是 mail 』类型的服务了。我们可以将这个概念绘制如底下的图示来理解:
tu
另外,每种服务所产生的数据量其实差异是很大的,举例来说, mail 的登录文件信息多的要命, 每一封信件进入后, mail 至少需要记录『寄信人的资讯;与收信者的信息』等等; 而如果是用来做为工作站主机的,那么登陆者 (利用 login 登录主机处理事情) 的数量一定不少,那个 authpriv 所管辖的内容可就多的要命了。
为了让不同的资讯放置到不同的文件当中,好让我们分门别类的进行登录文件的管理, 所以罗,将各种类别的服务之登录文件,记录在不同的文件里面,就是我们 /etc/syslog.conf 所要作的规范了!
信息等级
同一个服务所产生的信息也是有差别的,有启动时仅通知系统而已的一般信息 (information), 有出现还不至於影响到正常运行的警告信息 (warn) ,还有系统硬件发生严重错误时,所产生的重大问题信息 (error 等等); 信息到底有多少种严重的等级呢?基本上,syslog 将信息分为七个主要的等级,依序是这样的(由不重要排列到重要信息等级):
等级 等级名称 说明
1 info 仅是一些基本的信息说明而已;
2 notice 比 info 还需要被注意到的一些资讯内容;
3 warning
(warn) 警示的信息,可能有问题,但是还不至於影响到某个 daemon 运行的资讯;基本上, info, notice, warn 这三个信息都是在告知一些基本资讯而已,应该还不至於造成一些系统运行困扰;
4 err
(error) 一些重大的错误信息,例如配置档的某些配置值造成该服务服法启动的资讯说明, 通常藉由 err 的错误告知,应该可以了解到该服务无法启动的问题呢!
5 crit 比 error 还要严重的错误资讯,这个 crit 是临界点 (critical) 的缩写,这个错误已经很严重了喔!
6 alert 警告警告,已经很有问题的等级,比 crit 还要严重!
7 emerg
(panic) 疼痛等级,意指系统已经几乎要死机的状态! 很严重的错误资讯了。通常大概只有硬件出问题,导致整个核心无法顺利运行,就会出现这样的等级的信息吧!
除了这些有等级的信息外,还有两个特殊的等级,那就是 debug(错误侦测等级) 与 none (不需登录等级) 两个,当我们想要作一些错误侦测,或者是忽略掉某些服务的资讯时, 就用这两个咚咚吧!
特别留意一下在信息等级之前还有 [.=!] 的连结符号喔!他代表的意思是这样的:
. :代表『比后面还要高的等级 (含该等级) 都被记录下来』的意思,例如: mail.info 代表只要是 mail 的资讯,而且该资讯等级高於 info (含 info 本身)时,就会被记录下来的意思。
.=:代表所需要的等级就是后面接的等级而已, 其他的不要!
.!:代表不等於, 亦即是除了该等级外的其他等级都记录。
一般来说,我们比较常使用的是『.』这个连结符号啦!^_^
信息记录的档名或装置或主机
再来则是这个信息要放置在哪里的纪录了。通常我们使用的都是记录的文件啦!但是也可以输出到装置呦! 例如打印机之类的!也可以记录到不同的主机上头去呢!底下就是一些常见的放置处:
文件的绝对路径:通常就是放在 /var/log 里头的文件啦!
打印机或其他:例如 /dev/lp0 这个打印机装置
使用者名称:显示给使用者罗!
远程主机:例如 @www.vbird.tsai 当然啦,要对方主机也能支持才行!
*:代表『目前在线上的所有人』,类似 wall 这个命令的意义!
syslog.conf 语法练习
基本上,整个 syslog 的配置档就只是这样而已,底下我们来思考一些例题,好让你可以更清楚的知道如何配置 syslogd 啊!
例题:
如果我要将我的 mail 相关的数据给他写入 /var/log/maillog 当中,那么在 /etc/syslog.conf 的语法如何设计?
答:
基本的写法是这样的:
mail.info /var/log/maillog
注意到上面喔,当我们的等级使用 info 时,那么『任何大於 info 等级(含 info 这个等级)之上的信息, 都会被写入到后面接的文件之中!』这样可以了解吗?也就是说,我们可以将所有 mail 的登录资讯都纪录在 /var/log/maillog 里面的意思啦!
例题:
我要将新闻群组数据 (news) 及例行性工作排程 (cron) 的信息都写入到一个称为 /var/log/cronnews 的文件中,但是这两个程序的警告信息则额外的记录在 /var/log/cronnews.warn 中, 那该如何配置我的 syslog.conf 呢?
答:
很简单啦!既然是两个程序,那么只好以分号来隔开了,此外,由於第二个指定文件中,我只要记录警告信息, 因此配置上需要指定『.=』这个符号,所以语法成为了:
news.*;cron.* /var/log/cronnews
news.=warn;cron.=warn /var/log/cronnews.warn
上面那个『.=』就是在指定等级的意思啦!由於指定了等级,因此,只有这个等级的信息才会被纪录在这个文件里面呢! 此外你也必须要注意,news 与 cron 的警告信息也会写入 /var/log/cronnews 内喔!
例题:
我的 messages 这个文件需要记录所有的资讯,但是就是不想要记录 cron, mail 及 news 的资讯,那么应该怎么写才好?
答:
可以有两种写法,分别是:
*.*;news,cron,mail.none /var/log/messages
*.*;news.none;cron.none;mail.none /var/log/messages
使用『,』分隔时,那么等级只要接在最后一个即可,如果是以『;』来分的话, 那么就需要将服务与等级都写上去罗!这样会配置了吧!
CentOS 5.x 默认的 syslog.conf 内容
了解语法之后,我们来看一看 syslog 有哪些系统服务已经在记录了呢?就是瞧一瞧 /etc/syslog.conf 这个文件的默认内容罗! (注意!如果需要将该行做为注解时,那么就加上 # 符号就可以啦)
# 来自 CentOS 5.x 的相关数据 [root@www ~]# vim /etc/syslog.conf 1 #kern.* /dev/console 2 *.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages 3 authpriv.* /var/log/secure 4 mail.* -/var/log/maillog 5 cron.* /var/log/cron 6 *.emerg * 7 uucp,news.crit /var/log/spooler 8 local7.* /var/log/boot.log 9 news.=crit /var/log/news/news.crit 10 news.=err /var/log/news/news.err 11 news.notice /var/log/news/news.notice
上面总共仅有十一行配置值,每一行的意义是这样的:
#kern.*:只要是核心产生的信息,全部都送到 console(终端机) 去。console 通常是由外部装置连接到系统而来, 举例来说,很多封闭型主机 (没有键盘、萤幕的系统) 可以透过连接 RS232 连接口将信息传输到外部的系统中, 例如以笔记本计算机连接到封闭主机的 RS232 插口。这个项目通常应该是用在系统出现严重问题而无法使用默认的萤幕观察系统时, 可以透过这个项目来连接取得核心的信息。(注1)
*.info;mail.none;news.none;authpriv.none;cron.none:由於 mail, news, authpriv, cron 等类别产生的信息较多, 且已经写入底下的数个文件中,因此在 /var/log/messages 里面就不记录这些项目。除此之外的其他信息都写入 /var/log/messages 中。这也是为啥我们说这个 messages 文件很重要的缘故!
authpriv.*:认证方面的信息均写入 /var/log/secure 文件;
mail.*:邮件方面的信息则均写入 /var/log/maillog 文件;
cron.*:例行性工作排程均写入 /var/log/cron 文件;
*.emerg:当产生最严重的错误等级时,将该等级的信息以 wall 的方式广播给所有在系统登陆的帐号得知, 要这么做的原因是希望在线的使用者能够赶紧通知系统管理员来处理这么可怕的错误问题。
uucp,news.crit:uucp 是早期 Unix-like 系统进行数据传递的通讯协议,后来常用在新闻群组的用途中。 news 则是新闻群组。当新闻群组方面的资讯有严重错误时就写入 /var/log/spooler 文件中;
local7.*:将本机启动时应该显示到萤幕的信息写入到 /var/log/boot.log 文件中;
后面的 news.=crit、news.=err、news.notice 则主要在分别记录新闻群组产生的不同等级的信息。
在上面的第四行关於 mail 的记录中,在记录的文件 /var/log/maillog 前面还有个减号『 - 』是干嘛用的?由於邮件所产生的信息比较多,因此我们希望邮件产生的信息先储存在速度较快的内存中 (buffer) ,等到数据量够大了才一次性的将所有数据都填入磁碟内,这样将有助於登录文件的存取性能。 只不过由於信息是缓存在内存内,因此若不正常关机导致登录资讯未回填到登录文件中,可能会造成部分数据的遗失。
此外,每个 Linux distributions 的 syslog.conf 配置差异是颇大的,如果你想要找到相对应的登录资讯时, 可得要查阅一下 /etc/syslog.conf 这个文件才行!否则可能会发生分析到错误的资讯喔!举例来说, 鸟哥有自己写一支分析登录文件的 script,这个 script 是依据 Red Hat 系统默认的登录文件所写的,因此不同的 distributions 想要使用这支程序时,就得要自行设计与修改一下 /etc/syslog.conf 才行喔!否则就可能会分析到错误的资讯罗。 那么如果你有自己的需要而得要修订登录文件时,该如何进行?
自行添加登录文件文件功能
如果你有其他的需求,所以需要特殊的文件来帮你记录时,呵呵!别客气,千万给他记录在 /etc/syslog.conf 当中,如此一来,你就可以重复的将许多的资讯记录在不同的文件当中,以方便你的管理呢! 让我们来作个练习题吧!如果你想要让『所有的资讯』都额外写入到 /var/log/admin.log 这个文件时, 你可以怎么作呢?先自己想一想,并且作一下,再来看看底下的作法啦!
# 1. 先配置好所要创建的文件配置! [root@www ~]# vim /etc/syslog.conf # Add by VBird 2009/04/08 <==再次强调,自己修改的时候加入一些说明 *.info /var/log/admin.log <==有用的是这行啦! # 2. 重新启动 syslog 呢! [root@www ~]# /etc/init.d/syslog restart [root@www ~]# ll /var/log/admin.log -rw------- 1 root root 118 Apr 8 13:50 /var/log/admin.log # 瞧吧!创建了这个登录文件出现罗!
很简单吧!如此一来,所有的资讯都会写入 /var/log/admin.log 里面了!
登录文件的安全性配置
好了,由上一个小节里面我们知道了 syslog.conf 的配置,也知道了登录文件内容的重要性了, 所以,如果幻想你是一个很厉害的黑客,想利用他人的计算机干坏事,然后又不想留下证据, 你会怎么作?对啦!就是离开的时候将屁股擦干净,将所有可能的信息都给他抹煞掉, 所以第一个动脑筋的地方就是登录文件的清除工作啦~ 如果你的登录文件不见了,那该怎办?
伤脑筋呢!有没有办法防止登录文件被删除?或者是被 root 自己不小心变更呢?有呀!拔掉网络线或电源线就好了……呵呵! 别担心,基本上,我们可以透过一个隐藏的属性来配置你的登录文件,成为『 只可以添加数据,但是不能被删除 』的状态,那么或许可以达到些许的保护!不过,如果你的 root 帐号被破解了,那么底下的配置还是无法保护的,因为你要记得『 root 是可以在系统上面进行任何事情的 』,因此,请将你的 root 这个帐号的口令配置的安全一些!千万不要轻忽这个问题呢!
既然如此,那么我们就来处理一下隐藏属性的东东吧!我们在第七章谈到过 lsattr 与 chattr 这两个东西啦!如果将一个文件以 chattr 配置 i 这个属性时,那么该文件连 root 都不能杀掉!而且也不能新增数据,嗯!真安全!但是,如此一来登录文件的功能岂不是也就消失了? 因为没有办法写入呀!所以罗,我们要使用的是 a 这个属性!你的登录文件如果配置了这个属性的话,那么 他将只能被添加,而不能被删除!嗯! 这个项目就非常的符合我们登录文件的需求啦!因此,你可以这样的添加你的登录文件的隐藏属性。
[root@www ~]# chattr +a /var/log/messages [root@www ~]# lsattr /var/log/messages -----a------- /var/log/messages
加入了这个属性之后,你的 /var/log/messages 登录文件从此就仅能被添加,而不能被删除,直到 root 以『 chattr -a /var/log/messages 』取消这个 a 的参数之后,才能被删除或移动喔!
虽然,为了你登录文件的资讯安全,这个 chattr 的 +a 旗标可以帮助你维护好这个文件, 不过,如果你的系统已经被取得 root 的权限,而既然 root 可以下达 chattr -a 来取消这个旗标, 所以罗,还是有风险的啦!此外,前面也稍微提到,新手最好还是先不要添加这个旗标, 很容易由於自己的忘记,导致系统的重要信息无法记录呢。
基本上,鸟哥认为,这个旗标最大的用处除了在保护你登录文件的数据外, 他还可以帮助你避免掉不小心写入登录文件的状况喔。要注意的是,当『 你不小心 "手动" 更动过登录文件后,例如那个 /var/log/messages , 你不小心用 vi 开启他,离开却下达 :wq 的参数,呵呵!那么该文件未来将不会再继续进行登录动作! 』这个问题真的很常发生!由於你以 vi 储存了登录文件,则 syslogd 会误判为该文件已被更动过, 将导致 syslogd 不再写入该文件新的内容~很伤脑筋的!
要让该登录文件可以继续写入,你只要重新启动 syslog (/etc/init.d/syslog restart) 即可。 不过,总是比较麻烦。所以啊,如果你针对登录文件下达 chattr +a 的参数,嘿嘿! 未来你就不需要害怕不小心更动到该文件了!因为无法写入嘛!除了可以新增之外~ ^_^
不过,也因为这个 +a 的属性让该文件无法被删除与修改,所以罗,当我们进行登录文件轮替时 (logrotate) ,将会无法移动该登录文件的档名呢!所以会造成很大的困扰。这个困扰虽然可以使用 logrotate 的配置档来解决,但是,还是先将登录文件的 +a 旗标拿掉吧!
[root@www ~]# chattr -a /var/log/messages
登录文件服务器的配置
我们在之前稍微提到的,在 syslog.conf 文件当中,可以将登录数据传送到打印机或者是远程主机上面去。这样做有什么意义呢? 如果你将登录资讯直接传送到打印机上面的话,那么万一不小心你的系统被 cracker 所入侵, 他也将你的 /var/log/ 砍掉了,怎么办?没关系啊!反正你已经将重要数据直接以打印机记录起来了, 嘿嘿!他是无法逃开的啦!^_^
再想像一个环境,你的办公室内有十部 Linux 主机,每一部负责一个网络服务, 你为了要了解每部主机的状态,因此,你常常需要登陆这十部主机去查阅你的登录文件~ 哇!光用想的,每天要进入十部主机去查数据,想到就烦~没关系~这个时候我们可以让某一部主机当成 『登录文件服务器』,用他来记录所有的十部 linux 主机的资讯,嘿嘿!这样我就直接进入一部主机就可以了! 省时又省事,真方便~
那要怎么达到这样的功能呢?很简单啦,我们 CentOS 5.x 默认的 syslog 本身就已经具有这个登录文件服务器的功能了, 只是默认并没有启动该功能而已。你可以透过 man syslogd 去查询一下相关的选项就能够知道啦! 既然是登录文件服务器,那么我们的 Linux 主机当然会启动一个端口来监听了,那个默认的端口就是 UDP 的 514 喔!
tu
如上图所示,服务器会启动监听的端口,用户端则将登录文件再转出一份送到服务器去。 而既然是登录文件『服务器』,所以当然有服务器与用户端 (client) 罗!这两者的配置分别是这样的:
# 1. Server 端:修改 syslogd 的启动配置档,通常在 /etc/sysconfig 内! [root@www ~]# vim /etc/sysconfig/syslog # 找到底下这一行: SYSLOGD_OPTIONS="-m 0" # 改成底下这样子! SYSLOGD_OPTIONS="-m 0 -r" # 2. 重新启动与观察 syslogd 喔! [root@www ~]# /etc/init.d/syslog restart [root@www ~]# netstat -lunp | grep syslog Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:514 0.0.0.0:* 13981/syslogd # 嘿嘿!你的登录文件主机已经配置妥当罗!很简单吧!
透过这个简单的动作,你的 Linux 主机已经可以接收来自其他主机的登录资讯了! 当然啦,你必须要知道网络方面的相关基础,这里鸟哥只是先介绍, 未来了解了网络相关资讯后,再回头来这里瞧一瞧先! ^_^
至於 client 端的配置就简单多了!只要指定某个资讯传送到这部主机即可! 举例来说,我们的登录文件服务器 IP 为 192.168.1.100 ,而 client 端希望所有的数据都送给主机, 所以,可以在 /etc/syslog.conf 里面新增这样的一行:
[root@www ~]# vim /etc/syslog.conf *.* @192.168.1.100
再重新启动 syslog 后,立刻就搞定了!而未来主机上面的登录文件当中,每一行的『主机名称』就会显示来自不同主机的资讯了。 很简单吧! ^_^。接下来,让我们来谈一谈,那么如何针对登录文件来进行轮转 (rotate) 呢?
转自:http://vbird.dic.ksu.edu.tw/linux_basic/0570syslog_2.php
发表评论
文章已被作者锁定,不允许评论。
-
Linux ubuntu配置SSH免密登陆
2017-05-05 16:15 4581、安装 Ubuntu14.04默认安装了ssh-client ... -
Linux ubuntu虚拟机连接上网总结
2017-05-05 13:37 5091.首先查看主机的ip信息 ipconfig /all ... -
Linux七个运行级别
2015-03-03 09:20 540运行级别就是操作系统当前正在运行的功能级别。级别是从0到6,具 ... -
第二十四章 CentOS 系统配置工具: setup
2014-10-30 20:05 670系统配置除了使用手动 ... -
第二十二章 启动过程的问题解决
2014-10-28 19:34 419很多时候,我们可能因 ... -
第二十二章 Boot Loader: Grub
2014-10-27 19:44 566在看完了前面的整个启 ... -
第二十二章 核心与核心模块
2014-10-23 19:28 340谈完了整个启动的流程 ... -
第二十二章 Linux 的启动流程分析
2014-10-22 20:08 388启动不是只要按一下电 ... -
第二十一章 管理的抉择:RPM 还是 Tarball
2014-10-20 19:24 497这一直是个有趣的问题 ... -
第二十一章 YUM 线上升级机制
2014-10-15 19:33 523我们在本章一开始的地方谈到过 yum 这玩意儿,这个 yum ... -
第二十一章 SRPM 的使用 : rpmbuild
2014-10-14 19:44 953谈完了 RPM 类型的软件之后,再来我们谈一谈包含了 Sour ... -
第二十一章 RPM 软件管理程序: rpm
2014-10-13 20:10 447RPM 的使用其实不难,只要使用 rpm 这个命令即可!鸟哥最 ... -
第二十章 函式库管理
2014-10-13 19:25 473在我们的 Linux 操作系统 ... -
第二十章 Tarball 的管理与建议
2014-10-10 19:54 489在我们知道了原始码的 ... -
第二十章 用 make 进行巨集编译
2014-10-09 20:04 527在本章一开始我们提到过 make 的功能是可以简化编译过程里面 ... -
第二十章 开放源码的软件安装与升级简介
2014-10-09 19:47 436如果鸟哥想要在我的 Lin ... -
第十九章 分析登录文件
2014-10-08 19:34 406登录文件的分析是很重要的!你可以自行以 vi 进入登录文 ... -
第十九章 登录文件的轮替(logrotate)
2014-10-08 19:28 510假设我们已经将登 ... -
第十八章 系统开启的服务
2014-09-25 19:33 713好了,现在假设你已经知道了 daemons 的启动文件放置的目 ... -
第十八章 服务的防火墙管理 xinetd, TCP Wrappers
2014-09-24 19:47 548一般来说,系统的防火 ...
相关推荐
var Syslogd = require ( 'syslogd' ) Syslogd ( function ( info ) { /* info = { facility: 7 , severity: 22 , tag: 'tag' , time: Mon Dec 15 2014 10:58:44 GMT-0800 (PST) , hostname: 'hostname' , ...
syslogd是操作系统中用于日志记录的重要组件,它负责接收、处理并存储系统及应用程序的日志信息。这个压缩包包含的“syslogd”源码,对于想要深入理解系统日志管理机制的开发者或者系统管理员来说,是一份宝贵的参考...
此外,源码可能还包括示例配置文件和编译指南,帮助你搭建和自定义自己的syslogd服务。 在实际应用中,syslogd常被用于监控网络设备、服务器和应用程序的状态,提供故障排查和安全审计的依据。例如,网络管理员可以...
freebsd-jailed-syslogd 该角色提供了被监禁的syslogd服务器。 而已。要求该角色旨在与全新的FreeBSD 11.2安装一起使用。 有一个Vagrant Box,其中包含您可以使用的VirtualBox和EC2的提供程序。角色变量syslogd_net ...
Kiwi_Syslogd的安装流程简洁,只需执行压缩包内的“Kiwi_Syslogd_8.3.40.setup.exe”文件即可。安装完成后,用户无需进行复杂的配置,系统即刻开始工作,可以开始接收并存储来自网络中各个角落的syslog日志。这款...
2. 解压文件:解压缩“kiwi_syslogd_setup.exe”文件,通常这一步只需右键点击压缩包,选择“解压到当前文件夹”。 3. 运行安装程序:找到解压后的“kiwi_syslogd_setup.exe”,双击运行,跟随安装向导进行安装。...
Windows系统用的syslog服务器。用于接受syslog日志信息。
45. Syslogd 服务:Syslogd 服务是日志服务,很重要的服务。 46. Tux 服务:Tux 服务集成内核的 web 服务工具。 47. Vsftpd 服务:Vsftpd 服务是一个 ftp 服务端,以安全著称。 48. Winbind 服务:Winbind 服务是...
3. **/var/adm/messages**:这是一个通用的日志文件,由 `syslogd` 守护进程维护,记录了来自内核和其他应用程序的消息。这些消息可以是错误报告、警告或者一般性的通知。 4. **/var/cron/log**:记录了由 `cron` ...
3. 错误日志:由`syslogd`服务处理,各种系统服务、用户程序和内核通过`syslog`接口将重要事件记录到`/var/log/messages`文件,以及其他相关的日志文件中。 除了这三个主要的日志子系统,还有很多其他类型的日志...
标题中的“Syslogd_src.zip_C# EventLog_EventLog_syslog csharp_syslogd_wind”表明这是一个关于Windows系统日志(EventLog)的C#实现,特别是一个名为“Syslogd”的syslog守护进程,用于将syslog消息集成到Windows...
日志文件记录了系统运行过程中的各种活动,包括错误信息、系统事件、用户登录记录以及网络服务交互等,使得管理员能追踪系统状态,定位问题,甚至防范潜在的攻击。 在Linux系统中,日志管理主要涉及三个子系统: 1...
rsyslog是一个C/S架构的服务,可监听于某套接字,帮其它主机记录日志信息,在linux系统中可以分类两个日志: klogd:kernel,记录内核相关的日志 syslogd:service,记录应用程序的日志 rsyslog:是CentOS ...
思科防火墙实验中日志记录捕获软件。Kiwi_Syslogd_8.0.2版
登录文件主要由`syslogd`服务管理,它负责收集并记录来自不同源的日志信息。登录档的内容一般遵循固定的格式,包括时间戳、来源IP、执行动作的用户以及具体的操作或事件。系统中的一些后台守护进程(daemons)会产生...
在IT领域,syslog、syslog4j、syslogd和Linux syslog是系统日志管理的重要组成部分,尤其在服务器监控、故障排查和安全审计中扮演着至关重要的角色。以下是对这些概念的详细解释: 1. **syslog**:syslog是一种网络...
syslogd是一个守护程序,负责收集、处理和记录系统产生的日志信息。它根据配置文件`/etc/syslog.conf`来决定如何处理这些信息。 1. syslogd的工作原理: syslogd接收来自系统各个部分的日志信息,包括程序、守护...
* /var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log:分别是几个不同的网络服务的记录文件。 syslogd 的daemon 配置文件: * /etc/syslog.conf 内容语法是这样的:...
在 `syslogd.c` 文件中,`main` 函数是整个服务的入口点,它负责初始化和配置 syslogd。 1. **命令判断**: 在 `syslogd.c` 的 `main` 函数中,首先会检查用户启动的命令是否为 `syslogd` 或 `klogd`。`klogd` 是...