在 Ubuntu 上开启 syslog 远程日志接收,通常指的是让 rsyslog 监听远程端口,接收其他服务器发来的 syslog 日志。下面按常见场景说明。
Ubuntu 默认使用 rsyslog:
systemctl status rsyslog
如果没有安装:
sudo apt update
sudo apt install rsyslog
sudo vim /etc/rsyslog.conf
取消以下行的注释(UDP 和 TCP 建议至少开一个):
# 提供 UDP syslog 接收
module(load="imudp")
input(type="imudp" port="514")
# 提供 TCP syslog 接收
module(load="imtcp")
input(type="imtcp" port="514")
✅ 生产环境 推荐 TCP(更可靠)
✅ 默认端口是 514(syslog 标准端口)
sudo systemctl restart rsyslog
ss -lunp | grep 514 # UDP
ss -ltnp | grep 514 # TCP
示例输出:
LISTEN 0 128 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=1234,fd=6))
sudo ufw allow 514/udp
sudo ufw allow 514/tcp
sudo iptables -A INPUT -p udp --dport 514 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 514 -j ACCEPT
在 其他服务器 上配置 /etc/rsyslog.conf 或 /etc/rsyslog.d/*.conf:
*.* @192.168.1.10:514
*.* @@192.168.1.10:514
重启客户端 rsyslog:
sudo systemctl restart rsyslog
在日志服务器上:
tail -f /var/log/syslog
或查看:
ls /var/log/
在 日志服务器 上:
sudo vim /etc/rsyslog.d/remote.conf
$template RemoteLogs,"/var/log/remote/%HOSTNAME%.log"
*.* ?RemoteLogs
& stop
重启 rsyslog:
sudo systemctl restart rsyslog
日志将保存在:
/var/log/remote/客户端主机名.log
@ / @@sudo chown syslog:adm /var/log/remote
✅ 不要直接暴露 514 到公网
✅ 使用 TCP + TLS(imtcp + gtls)
✅ 或改端口(如 6514)
✅ 或限制来源 IP
如果你需要:
可以告诉我你的具体环境,我可以给你定制方案。