rsyslog是常驻内存中的服务,用于记录系统各类信息,并输出到日志文件(或者设备上)
系统产生的信息经由rsyslog记录,会产生下面格式的日志信息.
Aug 17 16:36:09 kumho-Inspiron-3421 postfix/pickup[1524]: 6BCA960072: uid=1000 from=
其记录的几个重要数据,时间发生的日期与时间,发生此事件的主机名,启动此事件的服务名称或函数,该信息的实际数据内容
rsyslog的配置文件是/etc/rsyslog.conf与/etc/rsyslog.d/_,通常/etc/rsyslog.conf负责整体的配置信息,/etc/rsyslog.d/_则是负责配置输出的日志信息与日志文件的对应.比如以下是/etc/rsyslog.d/50-default.conf的内容
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
mail.err /var/log/mail.err
其分为日志信息与输出文件两部分
因为系统产生的信息各式各样,所以对这些信息进行了分类,如下表
类型名
含义
auth(authpriv)
主要与认证有关的信息,比如login,su,ssh登录时产生的信息
cron
例行工作调度cron/at等信息
daemon
与各个daemon有关的信息
kern
内核产生的信息
lpr
打印相关的信息
邮件相关的信息记录
news
新闻组信息
syslog
就是syslog/rsyslog本身产生的信息
user,uucp,local0~local7
与机器相关的一些信息
日志信息等级用来描述事情的情况,如下表
等级
名称
说明
0
none
不输出任何信息
1
debug
调试信息
2
info
基本信息说明
3
notice
注意事项说明
4
waring(warn)
警告信息,但不影响运行
5
err(error)
错误信息,已造成不能运行
6
crit
比err严重,到临界点了
7
alert
比crit还严重
8
emerg(panic)
通常是硬件出错,内核已经无法运行的程度
等级连接符是为了方便我们书写配置文件,产生的。有以下:
. 表示大于等于后接等级的日志信息都会记录
.* 任意等级
.= 表示只有等于后接等级的日志信息才记录
!= 表示不等于后接等级的日志信息都会记录
我们需要在配置文件中指定日志输出的地方,其可以是如下:
一般文件: 以绝对路径书写
设备文件: 比如打印机(/dev/lp0)等
用户名称: 显示给用户
远程主机: @对方IP或@域名,需要对方也支持rsyslog服务
* : 当前系统在线的用户(相当于wall)
当输出文件前有-,表示日志信息先存在内存中,等数据量大才写入硬盘中.
我们只有在/etc/rsyslog.d/下新建相对的配置文件,配置文件格式如上说明,在重启rsyslog服务即可.(我在测试时,发觉输出日志文件定义在用户目录下没有输出日志信息,写在/var/log/下就有,很奇怪)