在 Debian 上远程发送 syslog,常见做法是通过 rsyslog(Debian 默认日志服务)把日志转发到远程日志服务器。下面按最常见、最实用的方式一步步说明。
| 方式 | 说明 |
|---|---|
| rsyslog → rsyslog(UDP/TCP) | 最常用,Debian 官方推荐 |
| rsyslog → 远程服务器(TCP/TLS) | 更安全,适合生产环境 |
下面以 rsyslog → rsyslog 为例。
192.168.1.10192.168.1.20sudo apt update
sudo apt install rsyslog
编辑配置文件:
sudo vim /etc/rsyslog.conf
取消注释(或添加):
# 接收 UDP
module(load="imudp")
input(type="imudp" port="514")
# 接收 TCP
module(load="imtcp")
input(type="imtcp" port="514")
✅ 推荐 TCP(更可靠)
sudo vim /etc/rsyslog.d/remote.conf
$template RemoteLogs,"/var/log/remote/%HOSTNAME%.log"
*.* ?RemoteLogs
& stop
sudo systemctl restart rsyslog
sudo ufw allow 514/tcp
sudo ufw allow 514/udp
sudo apt install rsyslog
sudo vim /etc/rsyslog.d/remote.conf
*.* @@192.168.1.20:514
*.* @192.168.1.20:514
说明:
@ = UDP@@ = TCPsudo systemctl restart rsyslog
logger "This is a remote syslog test"
tail -f /var/log/remote/$(hostname).log
或:
tail -f /var/log/syslog
如果你需要 加密 + 认证,可以用 rsyslog + TLS,步骤稍复杂,包括:
gtls6514如果你需要,我可以给你 完整 TLS 配置示例。
sudo netstat -tulnp | grep 514
sudo systemctl status rsyslog
Debian 默认不启用 SELinux,可忽略。
可限制:
*.* @@192.168.1.20:514
或只发 auth / cron / kernel:
auth.* @@192.168.1.20:514
Debian 远程发 syslog,就是:客户端 rsyslog 配置
@@服务器IP:514,服务端 rsyslog 开启 imtcp/imudp 接收。
如果你告诉我:
我可以给你 更精确的配置方案。