在 Debian 上实现 syslog 远程日志,常见有两种方式:
✅ rsyslog 远程(TCP/UDP) ✅ syslog-ng 远程
下面以 rsyslog(Debian 默认) 为主,给你一套完整可落地方案。
sudo apt update
sudo apt install rsyslog
编辑配置文件:
sudo nano /etc/rsyslog.conf
取消注释(或添加):
# 提供 UDP syslog 接收
module(load="imudp")
input(type="imudp" port="514")
# 提供 TCP syslog 接收(推荐)
module(load="imtcp")
input(type="imtcp" port="514")
编辑:
sudo nano /etc/rsyslog.d/remote.conf
内容示例:
$template RemoteLogs,"/var/log/remote/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& stop
sudo systemctl restart rsyslog
sudo ufw allow 514/tcp
sudo ufw allow 514/udp
sudo nano /etc/rsyslog.conf
或新建:
sudo nano /etc/rsyslog.d/remote.conf
UDP:
*.* @192.168.1.10:514
TCP(推荐):
*.* @@192.168.1.10:514
说明:
@ UDP@@ TCPsudo systemctl restart rsyslog
ls /var/log/remote/
tail -f /var/log/remote/192.168.1.20/some.log
logger "remote syslog test"
ss -lntp | grep 514
sudo ufw status
getenforce
systemctl status rsyslog
journalctl -u rsyslog
| 需求 | 方案 |
|---|---|
| 加密传输 | rsyslog + TLS |
| 高可靠 | TCP + 队列 |
| 日志分析 | ELK / Graylog |
| 审计合规 | 远程 + 本地双写 |
| 替代 syslog | systemd-journal-remote |
配置文件:
/etc/syslog-ng/syslog-ng.conf
示例:
source s_network {
tcp(ip(0.0.0.0) port(514));
};
destination d_remote {
file("/var/log/remote/${HOST}/${PROGRAM}.log");
};
log { source(s_network); destination(d_remote); };
✅ TCP + 目录分存 + 本地保留副本
✅ 日志服务器单独部署
✅ 关键业务日志使用 tag 标识
如果你愿意,我可以:
直接告诉我你的 使用场景 即可。