温馨提示×

ubuntu syslog怎样转发

小樊
55
2026-09-26 07:25:18
栏目: 智能运维

在 Ubuntu 上,syslog 转发通常指把本机日志发送到远程日志服务器(或集中式日志系统,如 rsyslog / syslog-ng / Logstash / Splunk 等)。下面按最常见方案说明。


一、使用 rsyslog 转发(Ubuntu 默认)

Ubuntu 一般自带 rsyslog。

1. 安装(如未安装)

sudo apt update
sudo apt install rsyslog

2. 配置转发

编辑配置文件(推荐新建一个):

sudo vim /etc/rsyslog.d/10-forward.conf

示例 1:转发所有日志(UDP)

*.* @192.168.1.100:514
  • 一个 @ = UDP
  • 192.168.1.100 是日志服务器 IP

示例 2:转发所有日志(TCP,更可靠)

*.* @@192.168.1.100:514

示例 3:只转发某类日志

auth.* @@logserver.example.com:514

3. 重启 rsyslog

sudo systemctl restart rsyslog
sudo systemctl enable rsyslog

二、使用 TCP + 队列(生产推荐)

防止网络中断丢日志:

*.* @@logserver:514
$ActionQueueType LinkedList
$ActionQueueFileName fwdRule1
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on

三、远程日志服务器配置(接收端)

在日志服务器上:

UDP 接收

module(load="imudp")
input(type="imudp" port="514")

TCP 接收

module(load="imtcp")
input(type="imtcp" port="514")

重启:

sudo systemctl restart rsyslog

四、使用 syslog-ng(可选)

如果系统用 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

六、安全建议

  • 使用 TCP
  • 使用 TLS(omfwd + gtls)
  • 防火墙只放行日志端口
  • 生产环境避免明文 UDP

如果你能告诉我:

  • Ubuntu 版本
  • 转发到哪种服务器(rsyslog / ELK / Splunk / 云端)
  • UDP 还是 TCP / 是否要加密

我可以直接给你可复制的完整配置。

0 踩