syslog服务和syslogd守护进程

来源:岁月联盟 编辑:exp 时间:2012-02-20
syslog机制负责发送、记录系统内核及工具所产生的信息,由syslog()调用、syslogd守护进程和配置文件/etc/syslog.conf组成。当系统内核及工具产生信息时,通过调用syslog(),把信息送往syslogd,syslogd再根据/etc/syslog.conf中的配置要求,将这些信息分别作如下处理:
 
 
记录到系统日志中
 输出到系统控制台上
转发给指定的用户
通过网络转发给其他主机上的syslogd
通过syslog.conf的配置,我们可以灵活地对信息的发送和保存进行控制。
 
        syslogd进程在系统启动时由/etc/rc2.d/S74syslog启动。如果需要手工启动或停止syslogd,可以使用命令
 
1
# /etc/init.d/syslog start | stop
         /etc/syslog.conf文件中的一项配置记录由“选项”(selector)和“动作”(action)两个部分组成,两者间用tab制表符进行分隔。而“选项”又由一个或多个形如“类型.级别”格式的保留字段组合而成,各保留字段间用分号分隔。
 
            保留字段中的“类型”代表信息产生的源头,可以是:
 
01
kern     由kernel产生的信息;
02
user     由用户进程产生的信息。对那些由程序或不在此列出的工具产生的信息,其缺省类型都是“user”;
03
mail     邮件系统产生的信息;
04
daemon   系统守护进程的信息,如in.ftpd、telnetd;
05
auth     由login, su, getty等进行身份认证时产生的信息;
06
syslog   由syslogd自己内部产生的信息;
07
lpr      行打印spooling系统的信息;
08
news     USENET 网络新闻系统的信息;
09
uucp     UUCP系统信息;
10
cron     cron和at工具信息;
11
local0-7 保留为local使用;
12
mark     syslogd内部产生的时间戳信息;
13
*        除mark之外的所有其它类型(此符号不可用以代表所有级别)。
         保留字段中的“级别”代表信息的重要性,可以是:
 
1
emerg    紧急,处于Panic状态。通常应广播到所有用户;
2
alert    告警,当前状态必须立即进行纠正。例如,系统数据库崩溃;
3
crit     关键状态的警告。例如,硬件故障;
4
err      其它错误;
5
warning  警告;
6
notice   注意;非错误状态的报告,但应特别处理;
7
info     通报信息;
8
debug    调试程序时的信息;
9
none     通常调试程序时用,指示带有none级别的类型产生的信息无需送出。如*.debug;mail.none表示调试时除邮件信息外其它信息都送出。
         “动作”域指示信息发送的目的地。可以是:
 
1
/filename   日志文件。由绝对路径指出的文件名,此文件必须事先建立;
2
@host       远程主机;
3
user1,user2 指定用户。如果指定用户已登录,那么他们将收到信息;
4
*           所有用户。所有已登录的用户都将收到信息。
        我们来看看/etc/syslog.conf文件中的实例:
 
1
...
2
 
3
*.err;kern.debug;daemon.notice;mail.crit    /var/adm/messages
4
 
5
...
这行中的“action”就是我们常关心的那个/var/adm/messages文件,输出到它的信息源头“selector”是:
 
1
*.err           所有的一般错误信息;
2
kern.debug      核心产生的调试信息;
3
daemon.notice   守护进程的注意信息;
4
mail.crit       邮件系统的关键警告信息