系统日志是程序在运行时自己产生的,而rsyslog只是将这些日志采集下来,
进行管理,系统日志是非常重要的,可以通过对日志的分析进行排错。
在实际生 产中,如果需要对日志进行操作,最好还是先将日志进行备份。
通常系统产生的日志记录在/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主机上产生的日志发送到node2主机上,所以就需要对两台主机的rsyslog进行配置。
node1作为发送端,编辑resyslog的主配置文件,重启服务。如下:
表示将自己产生的所有日志通过udp协议发送给172.25.254.210(node2)这台主机,“@”表示使用UDP协议,“@@”表示使用TCP协议。
node2作为接收端,要对rsyslog的主配置文件进行配置,如下图:
如果发送端使用的是UDP协议发送日志,去掉15,16行的#,如果发送端是TCP协议发送日志,去掉19,20行的#,然后重启服务关闭火墙,也可以对火墙进行配置,如下:
在node2端使用以下命令产生日志:
在node2端对/var/log/messages文件进行监控,会显示node1端的日志:
3.定义日志采集格式
上面的图中日志显示的格式都是固定的,我们可以自己定义日志的采集格式,编辑rsyslog的主配置文件,如下图:
重启服务后,日志的采集格式就和定义的格式相同,如下:
两台主机node1和node2,两台主机的时间不同,现在我想要让两台主机的时间保持一致,此时我们就需要让一台主机去同步另一台主机的时间。
node1:提供时间
node2:同步node1的时间
同步之后node2的时间就会和node1的时间相同。
编辑node1主机chrony服务的主配置文件,如下图:
[root@node1 mnt]# vim /etc/chrony.conf
21 # Allow NTP client access from local network. #允许172.25.254/24网段的主机同步本机时间
22 allow 172.25.254/24
28 # Serve time even if not synchronized to any NTP server.
29 local stratum 10 #打开时间同步
去掉22行的“#”,表示允许172.25.254.0网段的主机来同步本主机的时间。去掉29行的“#”,表示开启时间同步功能。然后重启chrony,如下:
[root@node1 mnt]# systemctl restart chronyd.service
服务端配置完成,现在配置node2。编辑node2主机的chrony服务的主配置文件/etc/chrony.conf,该文件在没配置之前如下图:
将框内的内容修改为下图所示的内容:
表示让本机去同步172.25.254.160(node1)主机的时间。
最后,需要将node1端的火墙关闭,否则firewalld会将请求隔离在外:
将node2的chrony服务重启之后,node2主机的时间就和node1主机的的时间保持一致,如下图:
在node2主机上用以下命令可以查看谁同步过本机的时间: