温馨提示×

centos syslog故障排查方法

小樊
34
2025-12-09 14:31:25
栏目: 智能运维

CentOS Syslog 故障排查方法

一 快速定位流程

  • 确认服务状态与自启:使用命令查看 rsyslog 是否运行并设置为开机自启,必要时启动或重启服务。示例:sudo systemctl status rsyslogsudo systemctl start rsyslogsudo systemctl enable rsyslog。若系统使用 syslog-ng,则检查 sudo systemctl status syslog-ng
  • 查看服务日志:通过 sudo journalctl -u rsyslog -f 实时观察 rsyslog 自身的启动与运行报错,优先从这里的报错入手。
  • 检查系统日志是否产生:确认系统日志仍在写入,例如 tail -f /var/log/messagestail -f /var/log/syslog,以判断是“服务异常”还是“日志未正确写入目标”。

二 常见故障与修复

  • 配置文件语法或模块冲突:编辑 /etc/rsyslog.conf/etc/rsyslog.d/*.conf 时,避免重复或冲突的模块与输入配置(例如同时启用 imjournal 又错误地再加载本地 socket 输入,或重复定义 input)。修改后执行 sudo systemctl restart rsyslog 验证。
  • 端口冲突:默认 UDP/TCP 514 被占用会导致监听失败。使用 sudo ss -lunpt | grep 514sudo netstat -tulpen | grep 514 排查占用进程,释放或调整端口后重启服务。
  • 权限与目录:确保日志目录(如 /var/log/)及文件对 root:adm 具备正确权限,必要时执行 sudo chown root:adm /var/log/your.logsudo chmod 640 /var/log/your.log
  • 资源与磁盘:检查磁盘空间 df -h、inode df -i 与内存使用,避免因 磁盘满/内存不足 导致服务异常或日志写入失败。
  • 服务未启用或异常退出:若服务未开机自启或被异常停止,执行 sudo systemctl enable --now rsyslog;若频繁重启,查看 journalctl -xeu rsyslog 的“start request repeated too quickly”等提示并修复根因。

三 远程日志收发排查

  • 服务端监听配置:在接收端启用模块与端口,例如在 /etc/rsyslog.conf/etc/rsyslog.d/ 下加入并启用:
    • UDP:module(load="imudp")input(type="imudp" port="514")
    • TCP:module(load="imtcp")input(type="imtcp" port="514")
      修改后 sudo systemctl restart rsyslog
  • 客户端发送配置:在发送端将需要的日志转发到远程服务器,例如:*.* @remote_host:514(UDP)。如需 TCP,使用 @@remote_host:514
  • 防火墙放行:在接收端放行 514/udp(或 514/tcp)。示例: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/messagesjournalctl -f 实时查看;结合 grep "ERROR"awk 做关键字筛选;部署 logwatch 做日报/周报;必要时接入 ELK Stack、Prometheus+Grafana、Zabbix 做可视化与告警。
  • 审计与合规:在 rsyslog 中按设施/级别分流到专用文件,例如仅记录错误与认证相关:*.err;auth,authpriv.* /var/log/error.log;定期备份关键日志并纳入审计流程。
  • 安全策略:启用 SELinux 并保留默认策略;若需排查策略阻断,可临时 sudo setenforce 0 验证,再用 sudo ausearch -m avc -ts recent 查看拒绝事件并精细化放行。

0