在 Linux 中,syslog 转发通常指把本机日志发送到远程日志服务器(如集中式日志系统)。不同发行版用的 syslog 实现不同,常见有:
下面按常见方案说明。
编辑配置文件:
/etc/rsyslog.conf
# 或
/etc/rsyslog.d/forward.conf
添加:
*.* @remote-log-server:514
说明:
@ = UDP@@ = TCPremote-log-server 可以是 IP 或域名*.* @@remote-log-server:514
auth.* @@log.example.com:514
*.err @log.example.com:514
module(load="imtcp")
module(load="omrelp")
*.* action(type="omrelp"
target="log.example.com"
port="2514"
tls="on"
tls.caCert="/etc/rsyslog/ca.pem")
重启服务:
systemctl restart rsyslog
配置文件:
/etc/syslog-ng/syslog-ng.conf
示例(UDP):
destination d_remote {
udp("192.168.1.100" port(514));
};
log {
source(s_src);
destination(d_remote);
};
TCP:
destination d_remote {
tcp("192.168.1.100" port(514));
};
重启:
systemctl restart syslog-ng
如果你只用 journalctl,需要 rsyslog 接收:
/etc/rsyslog.conf
module(load="imjournal")
或者把 journal 转发到远程:
journalctl -f | nc log.server 514
(不推荐生产)
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
保存日志:
*.** /var/log/remote.log
# 查看服务状态
systemctl status rsyslog
# 测试端口
nc -vz log.server 514
# 防火墙
firewall-cmd --add-port=514/udp --permanent
| 方式 | 适用场景 |
|---|---|
| UDP | 内网、性能优先 |
| TCP | 稳定传输 |
| RELP/TLS | 生产、安全 |
| syslog-ng | 复杂规则 |
如果你告诉我:
我可以给你精准配置示例。