目前,Linux依旧使用syslog作为日志监控进程,因此对其进行必要的配置能减少很多麻烦,并可更有效地从系统日志监控到系统的状态。理解并完善一个syslog的配置,对于系统管理员来说尤为重要,/etc/syslog.conf根据如下的格式定义规则:
facility.level action即“设备.优先级 处理方案”。
facility.level字段也称为selector(选择条件),选择条件和处理方案之间用空格或Tab分隔开。#号开头的是注释,空白行会自动跳过。下面分别介绍。
(1)facility(设备)
facility定义了日志消息的范围,可以使用的key如下所示。
auth:由pam_pwdb报告的认证活动。
authpriv:包括特权信息,如用户名在内的认证活动。
cron:与cron和at有关的计划任务信息。
daemon:与inetd守护进程有关的后台进程信息。
kern:内核信息,首先通过klogd传递。
lpr:与打印服务有关的信息。
mail:与电子邮件有关的信息。
mark:syslog的内部功能,用于生成时间戳。
news:来自新闻服务器的信息。
syslog:由syslog生成的信息。
user:由用户程序生成的信息。
uucp:由uucp生成的信息。
local0~local7:与自定义程序一起使用。
另外,*通配符代表除mark以外的所有功能。security是一个旧的key定义,等同于auth,不建议使用。
(2)level(优先级)
level定义了消息的紧急程度。按严重程度由高到低顺序排列如下。
emerg:该系统不可用,等同于panic。
alert:需要立即被修改的条件。
crit:危急情况。
err:错误消息,等同于error。
warning:预警信息,等同于warn。
notice:具有重要性的普通条件。
info:提供信息的消息。
debug:不包含函数条件或问题的其他信息。
none:没有重要级,通常用于排错。
另外,*代表所有级别,除了none外,panic、error、warn均为旧的标识符,不建议使用。
在定义level级别的时候,需要注意两点:
优先级是由应用程序在编程的时候决定的,除非修改源码再编译,否则不能改变消息的优先级。
低优先级包含高优先级,例如,为某个应用程序定义info的日志导向,则涵盖notice、warning、err、crit、alert、emerg等消息。
(3)selector(选择条件)
通过小数点符号“.”把facility和level连接在一起则成为selector(选择条件)。可以使用分号“;”同时定义多个选择条件。也支持如下3个修饰符。
*:表示所有日志信息。
=:等于,即仅包含本优先级的日志信息。
!:不等于,本优先级日志信息除外。
(4)action(处理方案)
由前面选择条件定义的日志信息,可执行下面的动作。
file:指定日志文件的绝对路径。
terminal或print:发送到串行或并行设备的标志符,例如/dev/ttyS2 @host表示远程的日志服务器。
username:发送信息到本机的指定用户信息窗口中,但该用户必须已经登录到系统中。
named pipe:发送到预先使用mkfifo命令创建的FIFO文件的绝对路径中。
注意 不能通过“/var/xxx.sh”方式将日志导入到其他脚本中处理