1. 确认Syslog服务状态
首先检查rsyslog服务是否正常运行,使用命令:sudo systemctl status rsyslog
。若服务未启动(显示“inactive”),需通过sudo systemctl start rsyslog
启动服务,并通过sudo systemctl enable rsyslog
设置开机自启,确保服务持续运行。
2. 检查Syslog配置文件
CentOS系统中,rsyslog的主配置文件为/etc/rsyslog.conf
,自定义规则通常存放在/etc/rsyslog.d/
目录下(如50-default.conf
)。需验证以下内容:
*.err
表示记录错误及以上级别日志,*.info
表示记录所有信息);/var/log/messages
用于系统通用日志,/var/log/secure
用于安全相关日志);*.* @192.168.1.100:514
表示将日志发送到远程服务器的514端口)。3. 查看与过滤日志内容
通过命令行工具快速定位故障信息:
tail -f /var/log/messages
(系统通用日志)或tail -f /var/log/secure
(安全日志),实时跟踪最新日志动态;grep
命令过滤特定错误,如grep "error" /var/log/messages
(查找错误信息)、grep "failed" /var/log/secure
(查找登录失败记录);journalctl -u rsyslog
查看rsyslog自身的日志,或journalctl -b
查看系统启动日志,帮助定位服务启动失败等问题。4. 验证日志文件权限与磁盘空间
ls -l /var/log/messages
查看文件权限(通常应为-rw-r--r--
),所有者应为root
。若权限异常,可通过chown root:root /var/log/messages
修改所有者,chmod 644 /var/log/messages
修改权限;df -h
命令检查磁盘空间使用情况。若/var
分区空间不足(如使用率超过80%),需清理旧日志(如rm -f /var/log/*.gz
删除压缩的旧日志)或扩展分区,避免因空间不足导致日志无法写入。5. 检查SELinux与防火墙设置
getenforce
显示“Enforcing”),可能会阻止rsyslog写入日志文件。可通过setenforce 0
临时设置为“Permissive”模式,观察问题是否解决。若需永久修改,编辑/etc/selinux/config
文件,将SELINUX=enforcing
改为SELINUX=permissive
;firewall-cmd --add-port=514/udp --permanent
添加规则,然后firewall-cmd --reload
重新加载防火墙配置。6. 关联分析与定位根本原因
结合多个日志源的信息,通过唯一标识符(如进程ID、IP地址、时间戳)追踪问题链。例如:
/var/log/messages
中出现“Out of memory”错误,可关联/var/log/secure
中的“oom-killer”记录,确认是否因内存不足导致进程被终止;/var/log/secure
中出现“Connection refused”错误,可检查/var/log/messages
中的sshd服务日志,确认是否因sshd服务未启动或端口被占用导致。7. 利用辅助工具增强排查效率
logwatch --output mail
),或通过Zabbix设置日志关键词报警(如检测到“error”时发送邮件),及时发现潜在问题。