在 Linux 里用 syslog / rsyslog / syslog-ng 排错,通常遵循“先看日志 → 再查服务 → 再看配置 → 最后看权限和磁盘”的思路。下面按实战流程说明。
ps -ef | grep -E "rsyslog|syslog-ng|syslogd"
常见情况:
rsyslogd:最常见(RHEL/CentOS/Ubuntu)syslog-ng:部分发行版systemd-journald:现代系统(journalctl)/var/log/messages
/var/log/syslog
/var/log/secure
查看示例:
tail -f /var/log/messages
grep sshd /var/log/secure
journalctl -xe
journalctl -u rsyslog
journalctl _COMM=sshd
systemctl status rsyslog
常见问题:
failedactive (exited) 但其实没写日志systemctl restart rsyslog
journalctl -u rsyslog -xe
配置文件:
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
rsyslogd -N1
输出示例(有错会直接提示):
rsyslogd: version ...
error: ....
df -h
df -i
ls -l /var/log/messages
确保:
ausearch -m AVC -ts recent
setenforce 0 # 临时关闭测试
*.* @192.168.1.10:514
module(load="imudp")
input(type="imudp" port="514")
测试:
logger "test syslog"
在服务端看是否收到。
logger "hello syslog"
tcpdump -i any udp port 514
lsof -i :514
✅ 服务是否运行
✅ 配置是否通过 -N1
✅ 日志文件是否存在
✅ 磁盘 / inode 是否正常
✅ 权限 / SELinux
✅ 远程端口是否通
如果你愿意,可以告诉我:
我可以直接帮你定位。