CentOS Syslog 故障排查方法
一 快速定位流程
sudo systemctl status rsyslog、sudo systemctl start rsyslog、sudo systemctl enable rsyslog。若系统使用 syslog-ng,则检查 sudo systemctl status syslog-ng。sudo journalctl -u rsyslog -f 实时观察 rsyslog 自身的启动与运行报错,优先从这里的报错入手。tail -f /var/log/messages 或 tail -f /var/log/syslog,以判断是“服务异常”还是“日志未正确写入目标”。二 常见故障与修复
imjournal 又错误地再加载本地 socket 输入,或重复定义 input)。修改后执行 sudo systemctl restart rsyslog 验证。sudo ss -lunpt | grep 514 或 sudo netstat -tulpen | grep 514 排查占用进程,释放或调整端口后重启服务。sudo chown root:adm /var/log/your.log、sudo chmod 640 /var/log/your.log。df -h、inode df -i 与内存使用,避免因 磁盘满/内存不足 导致服务异常或日志写入失败。sudo systemctl enable --now rsyslog;若频繁重启,查看 journalctl -xeu rsyslog 的“start request repeated too quickly”等提示并修复根因。三 远程日志收发排查
module(load="imudp")、input(type="imudp" port="514")module(load="imtcp")、input(type="imtcp" port="514")sudo systemctl restart rsyslog。*.* @remote_host:514(UDP)。如需 TCP,使用 @@remote_host:514。sudo firewall-cmd --permanent --add-port=514/udp && sudo firewall-cmd --reload;部分系统也可使用 sudo firewall-cmd --permanent --add-service=syslog && sudo firewall-cmd --reload。ping remote_host 检查网络,再用 sudo tcpdump -ni any port 514 在服务端抓包确认是否收到日志报文,配合 tail -f /var/log/messages 观察是否落地。四 日志与审计增强建议
tail -f /var/log/messages、journalctl -f 实时查看;结合 grep "ERROR" 或 awk 做关键字筛选;部署 logwatch 做日报/周报;必要时接入 ELK Stack、Prometheus+Grafana、Zabbix 做可视化与告警。*.err;auth,authpriv.* /var/log/error.log;定期备份关键日志并纳入审计流程。sudo setenforce 0 验证,再用 sudo ausearch -m avc -ts recent 查看拒绝事件并精细化放行。