在Linux系统中,有专门采集信息的服务rsyslog,它不产生日志,只起到采集作用。采集日志的目的则是为了记录系统中有意义的动作,遇到系统故障,我们可以通过日志来恢复比较重要的信息。因此,日志的采集对我们用户尤为重要。
一、rsyslog的管理
- /var/log/messages 服务信息日志
- /var/log/secure 系统登录日志
- /var/log/cron 定时任务日志
- /var/log/maillog 邮件日志
- /var/log/boot.log 系统启动日志
指定日志采集路径:
什么类型的日志.什么级别的日志 /var/log/file ##日志采集规则
(1)日志类型
类型 | 说明 |
---|---|
auth | pam产生的日志 |
authpriv | ssh,ftp等登录信息的验证信息 |
cron | 时间任务相关 |
kern | 内核 |
lpr | 打印 |
mark(syslog)-rsyslog | 服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uucp | unix to unix copy, unix主机之间相关的通讯 |
local 1~7 | 自定义的日志设备 |
(2)日志的级别
级别 | 说明 |
---|---|
debug | 有调式信息,日志信息最多 |
info | 一般信息的日志,最常用 |
notice | 最具有重要性的普通条件的信息 |
warning | 警告级别 |
err | 错误级别,阻止某个功能或模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert | 需要立刻修改的信息 |
emerg | 内核崩溃等严重信息 |
none | 什么都不记录 |
注意:从上到下,级别从低到高,记录的信息越来越少
详细的可以查看手册 man 3 syslog
操作示例:
(1)目的: 把系统中所有日志采集到/var/log/westos文件中
(2)操作
vim /etc/rsyslog.conf ##修改日志文件
*.* /var/log/westos
systemctl restart rsyslog ##重启日志服务
(3)测试
systemctl restart sshd ##此命令的目的是为了生成日志
cat /var/log/westos ##此文件中出现日志信息
注意:我们将系统日志采集到/var/log/westos文件时,该文件不存在,在重启rsyslog后会自动生成该文件,并将采集的日志放在里面。
二、日志的远程同步
- 准备工作:
对发送方和接收方同时操作
> /var/log/messages
systemctl restart sshd.service
cat /var/log/messages
我们发现将/var/log/messages清空,仍存在许多日志信息,这些/etc/rc.d/rc.local信息将会影响我们的实验效果,我们需要将其清理掉。
> /etc/rc.d/rc.local
reboot
2. 日志文件的修改
(1)在日志发送方
vim /etc/log/rsyslog.conf
*.* @172.25.254.155 ##@表示udp协议发送,@@表示tcp协议发送
systemctl restart rsyslog
(2)在日志接受方
vim /etc/rsyslog.conf
15 $ModLoad imudp 日志接受模块
16 $UDPServerRun 514 开启接收端口
netstat -antlupe | grep rsyslog 查看udp端口是否打开
systemctl restart rsyslog
通过netstat -antlupe | grep rsyslog命令,我们可以看到udp端口已经打开了
执行以上命令,我们发现发送方的日志还是不能同步到接收方,为此我们进行排错,在网络链接正常、udp端口开启的情况下,我们发现防火墙不允许外来数据包的传送,因此,我们需要关闭防火墙,再继续执行。
systemctl stop firewalld ##关闭火墙
systemctl disable firewalld ##设定火墙开机关闭
3. 测试
(1)日志发送方
> /var/log/messages ##清空日志信息
logger test ##生产日志信息
cat /var/log/messages ##查看日志是否已经生成
在日志接收方查看
(2)日志接收方
> /var/log/messages ##清空日志信息
cat /var/log/messages ##查看日志是否同步