在 Ubuntu 上,syslog 转发通常指把本机日志发送到远程日志服务器(或集中式日志系统,如 rsyslog / syslog-ng / Logstash / Splunk 等)。下面按最常见方案说明。
Ubuntu 一般自带 rsyslog。
sudo apt update
sudo apt install rsyslog
编辑配置文件(推荐新建一个):
sudo vim /etc/rsyslog.d/10-forward.conf
*.* @192.168.1.100:514
@ = UDP192.168.1.100 是日志服务器 IP*.* @@192.168.1.100:514
auth.* @@logserver.example.com:514
sudo systemctl restart rsyslog
sudo systemctl enable rsyslog
防止网络中断丢日志:
*.* @@logserver:514
$ActionQueueType LinkedList
$ActionQueueFileName fwdRule1
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
在日志服务器上:
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
重启:
sudo systemctl restart rsyslog
如果系统用 syslog-ng:
destination d_remote {
tcp("192.168.1.100" port(514));
};
log {
source(s_src);
destination(d_remote);
};
# 查看服务状态
systemctl status rsyslog
# 测试日志
logger "test syslog forward"
# 看是否发送
tcpdump -i any port 514
如果你能告诉我:
我可以直接给你可复制的完整配置。