Syslog 无法接收日志通常不是单一原因,而是网络、服务配置、权限或格式等多个环节出问题。下面按最常见 → 较少见的顺序,帮你系统性排查。
在深入之前,先快速检查:
不同系统使用的 Syslog 实现不同:
systemctl status rsyslog
启动:
systemctl start rsyslog
systemctl enable rsyslog
查看监听端口:
ss -lunp | grep 514
ss -ltnp | grep 514
systemctl status rsyslog
systemctl status syslog-ng
默认情况下,很多 Syslog 只监听本地。
编辑配置文件(常见路径):
/etc/rsyslog.conf
取消注释或添加:
# UDP
module(load="imudp")
input(type="imudp" port="514")
# TCP
module(load="imtcp")
input(type="imtcp" port="514")
修改后重启:
systemctl restart rsyslog
firewall-cmd --list-ports
firewall-cmd --add-port=514/udp --permanent
firewall-cmd --add-port=514/tcp --permanent
firewall-cmd --reload
iptables -L -n
iptables -I INPUT -p udp --dport 514 -j ACCEPT
iptables -I INPUT -p tcp --dport 514 -j ACCEPT
查看:
getenforce
临时验证:
setenforce 0
如果此时能收日志,说明是 SELinux 问题,需配置策略而不是关闭。
检查是否有过滤规则丢弃日志:
grep -R "stop" /etc/rsyslog.conf /etc/rsyslog.d/
示例(rsyslog):
*.* @@192.168.1.10:514
@ = UDP@@ = TCP常见问题:
日志实际到了,但:
检查:
ls -l /var/log
logger "test syslog message"
查看:
tail -f /var/log/messages
tail -f /var/log/syslog
nc -u -v 192.168.1.10 514
| 现象 | 真实原因 |
|---|---|
| 重启后又能收到 | 规则未保存 / 服务未开机启动 |
| 本地能收,远程不能 | 防火墙或监听地址 |
| 能通但收不到 | Syslog 未开网络接收 |
| 只有部分设备能发 | 协议不一致(UDP/TCP) |
你可以直接告诉我:
我可以一步一步给你针对性修复命令。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。