syslog配置文件
基本语法:
Rsyslog针对各种服务与信息记录在某些文件的配置文件就是/etc/rsyslog.conf,这个文件规定了什么服务的什么等级信息以及需要被记录在哪里(设备或文件)。
基本语法:
服务名称[.=!]信息等级 信息记录的文件或设备或主机
mail.info /var/log/maillog_info
#这行说明:mail服务产生的大于等于info等级的信息都记录到/var/maillog_info文件中。
服务名称
syslogd本身有设置一些服务,主要有下面这些。
服务类型 | 说明 |
auth(authpriv) | 主要与认证有关的机制,例如:login,ssh,su等需要帐号/密码 |
cron | 就是例行性工作调度cron/at等生成信息日志的地方 |
daemon | 与各个daemon有关的信息 |
kern | 就是内核(kernel)产生信息的地方 |
lpr | 即是打印相关的信息 |
mail | 只要与邮件收发有关的信息记录都属于这个 |
news | 与新闻组服务器有关的东西 |
syslog | 就是syslogd这个程序本身生成的信息 |
user,uucp | 与Unix like机器本身有关的一些信息 |
local0~lcocal7 | 自定义的日志设备 |
以上都是rsyslog自行定制的服务名称,软件可通过调用上述的服务名称来记录它们产生的信息。如:sendmail与postfix及dovecot都是与邮件有关的软件,这些软件在设计日志记录时都会主动调用rsyslogd内的mail服务名称(LOG_MAIL),所以上述软件所产生的信息被rsyslogd记录在maillog文件中。
信息等级
同一个服务所产生的信息也是有差别的,有启动时仅通知系统而已的一般信息(information),有出现还不至于影响到正常运行的警告信息(warn),还
有系统硬件发生严重错误时所产生的重大问题信息(error等);syslog将信息分为以下几个主要等级。
等级 | 等级名称 | 说明 |
1 | debug | 有调式信息的,日志信息最多 |
2 | info | 基本的信息说明,最常用 |
3 | notice | 重要性的普通条件的信息 |
4 | warning(warn) | 警告的信息级别,但还不至于影响到某个daemon运行的信息; |
5 | err(error) | 一些错误的信息,阻止某个功能或者模块不能正常工作的信息 |
6 | crit | 重大错误级别,阻止整个系统或者整个软件不能正常工作的信息 |
7 | alert | 严重错误级别,需要立刻修改的信息 |
8 | emerg(panic) | “疼痛”等级,指系统几乎要死机的状态。如内核崩溃等严重信息 |
9 | none | 什么都不记录 |
从上到下,级别从低到高,记录的信息越来越少 。
基本上,info,notice,warn这三个信息都是在告知一些基本信息而已,应该还不至于造成一些系统运行困扰。debug(错误检测等级)和none(不需等录等级),这两个等级的信息比较特殊,当我们要做一些错误检测或忽略掉某些服务的信息时,可用这两个等级。
等级信息前[.=!]所代表的意思是:
- .xxx: 表示大于等于xxx级别的信息
- =xxx:表示等于xxx级别的信息
- .!xxx:表示在xxx之外的等级的信息
信息记录
配置文件还需要告知rsyslogd将信息记录到什么地方,通常是记录文件,但也可以输出到设备,例如打印机之类的。也可以记录到不同的主机上。下面是一些常见的放置处:
- 文件的绝对路径:通常就是放在/var/log里,
例子:. /var/log/boot.log # 绝对路径 - 打印机或其他:例如/dev/lp0这个打印机设备。
- 远程主机:需要对方主机的支持。
例子:. @192.168.0.1 # 使用UDP协议转发到192.168.0.1的514(默认)端口 - *:代表目前在线的用户,类似wall这个命令
例子:. root,kadefor,up01 # 使用,号分隔多个用户
例子:. * # *号表示所有在线用户 - 忽略,丢弃
例子:local3.* ~ # 忽略所有local3类型的所有级别的日志