温馨提示×

Ubuntu syslog怎么开启远程

小樊
40
2026-07-31 17:14:56
栏目: 智能运维

在 Ubuntu 上开启 syslog 远程日志接收,通常指的是让 rsyslog 监听远程端口,接收其他服务器发来的 syslog 日志。下面按常见场景说明。


一、确认使用的是 rsyslog

Ubuntu 默认使用 rsyslog

systemctl status rsyslog

如果没有安装:

sudo apt update
sudo apt install rsyslog

二、开启 UDP / TCP 远程接收

1️⃣ 编辑 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 标准端口)


2️⃣ 重启 rsyslog

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))

四、防火墙放行(非常重要)

UFW(Ubuntu 常见)

sudo ufw allow 514/udp
sudo ufw allow 514/tcp

iptables(无 UFW)

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

UDP 发送

*.* @192.168.1.10:514

TCP 发送

*.* @@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

八、常见问题排查

1️⃣ 收不到日志

  • 防火墙是否放行
  • 客户端是否用 @ / @@
  • 端口是否一致
  • SELinux(Ubuntu 一般无)

2️⃣ 权限问题

sudo chown syslog:adm /var/log/remote

九、安全建议(生产环境)

✅ 不要直接暴露 514 到公网
✅ 使用 TCP + TLS(imtcp + gtls)
✅ 或改端口(如 6514)
✅ 或限制来源 IP


如果你需要:

  • TLS 加密 syslog
  • Docker / Kubernetes 日志
  • rsyslog → ELK / Loki
  • Ubuntu 22.04 / 24.04 特定配置

可以告诉我你的具体环境,我可以给你定制方案。

0