在 Debian 上把 syslog 远程发送/接收 通常有几种常见方式,最常用的是 rsyslog(Debian 默认)。
下面按场景给你说明。
sudo apt update
sudo apt install rsyslog
编辑配置:
sudo nano /etc/rsyslog.conf
在文件末尾添加(示例 UDP):
*.* @192.168.1.100:514
如果是 TCP:
*.* @@192.168.1.100:514
说明:
@ = UDP@ = TCP192.168.1.100 是远程 syslog 服务器sudo systemctl restart rsyslog
编辑:
sudo nano /etc/rsyslog.conf
取消注释或添加:
UDP 接收
module(load="imudp")
input(type="imudp" port="514")
TCP 接收
module(load="imtcp")
input(type="imtcp" port="514")
template(name="RemoteLogs" type="string"
string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")
if ($fromhost != "localhost") then {
action(type="omfile" fileCreateMode="0644" template="RemoteLogs")
}
sudo ufw allow 514/udp
sudo ufw allow 514/tcp
sudo systemctl restart rsyslog
Debian 也支持 syslog-ng:
sudo apt install syslog-ng
destination d_remote { tcp("192.168.1.100" port(514)); };
log { source(s_src); destination(d_remote); };
source s_net { tcp(ip(0.0.0.0) port(514)); };
destination d_remote { file("/var/log/remote/${HOST}.log"); };
log { source(s_net); destination(d_remote); };
logrotate如果你能说明:
我可以直接给你一份可用配置文件。