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”时发送邮件),及时发现潜在问题。