系统日志是程序在运行时自己产生的,而rsyslog只是将这些日志采集下来,进行管理,系统日志是非常重要的,可以通过对日志的分析进行排错。在实际生产中,如果需要对日志进行操作,最好还是先将日志进行备份。本篇文章讲解的是rsyslog这个软件采集日志的格式,及其配置,希望可以对你有用。
1.日志格式
通常系统产生的日志记录在/var/log这个目录中,常见的有以下五个文件:
[root@node2 mnt]# cat /var/log/messages #常规信息的日志,日志级别info
[root@node2 mnt]# cat /var/log/secure #认证信息的日志
[root@node2 mnt]# cat /var/log/cron #定时信息日志
[root@node2 mnt]# cat /var/log/maillog #邮件服务信息日志
[root@node2 mnt]# cat /var/log/boot.log #系统启动信息日志
可以通过编辑rsyslog的配置文件/etc/rsyslog.conf,控制文件的采集方式,如下图:
在/etc/rsyslog.conf文件中添加了红框中的内容,其中包含三部分内容,“.”之前表示日志的内容,“.”之后表示日志的级别,“*”表示所有,后面的/var/log/westos表示记录日志的文件。所以,所添加的内容表示所有类型的所有级别的日志都记录在/var/log/westos文件中。
日志类型:
auth ##pam产生的日志
authpriv #ssh,ftp等登陆信息的验证信息
cron #时间任务相关
kern #内核
lpr #打印
mail #邮件
mark(syslog)-rsyslog #服务内部的信息,时间标示
news #新闻组
user #用户程序产生的相关信息
uucp #unix to unix copy,unix主机之间相关的通讯
local 1~7 #自定义的日志设备
日志级别:(从上到下,级别从低到高,记录的信息越少):
debug ##有调式信息的,日志信息最多
info #一般信息的日志,最常用
notice #最具有重要性的普通条件信息
warning #警告级别
err #错误级别,阻止某个功能或模块不能正常工作的信息
crit #严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert #需要立刻修改的信息
emerg #内核崩溃等严重信息
none #什么都不记录
重启rsyslog服务之后,就会产生/var/log/westos文件,如下图:
westos文件中就记录了所有的日志信息,用其他的主机ssh连接node2主机,westos就会产生相应的日志,如下图:
> /var/log/westos是清空该文件,为了查看方便,所以将日志清空。如果现在不让rsyslog采集认证信息的日志,可以在/var/rsyslog.conf文件中继续编辑,如下:
“;”后面的内容就是除了认证信息,其他类型的日志都采集到/var/log/westos文件中,重启服务后,再次用其他主机ssh连接node2,westos文件中就不会记录此次认证日志,如下:
2.日志的远程发送
在生产环境中,可能会出现一个管理员需要对多台主机上的日志进行分析,为了高效就要将多台主机的日志发送到一台主机上进行分析。现在有两台主机node1和node2,需要将node2主机上产生的日志发送到node1主机上,所以就需要对两台主机的rsyslog进行配置。
node2作为发送端,编辑resyslog的主配置文件,重启服务。如下:
表示将自己产生的所有日志通过udp协议发送给172.25.254.160(node1)这台主机,“@”表示使用UDP协议,“@@”表示使用TCP协议。
node1作为接收端,要对rsyslog的主配置文件进行配置,如下图:
如果发送端使用的是UDP协议发送日志,去掉15,16行的“#”,如果发送端是TCP协议发送日志,去掉19,20行的日志,然后重启服务关闭火墙,也可以对火墙进行配置,如下:
在node2端使用以下命令产生日志:
在node1端对/var/log/messages文件进行监控,会显示node2端的日志:
3.定义日志采集格式
上面的图中日志显示的格式都是固定的,我们可以自己定义日志的采集格式,编辑rsyslog的主配置文件,如下图:
重启服务后,日志的采集格式就和定义的格式相同,如下: