“远程发 Linux syslog”一般指把本机日志通过网络发送到远程 syslog 服务器(或日志收集系统)。下面按常见场景 + 实操命令说明。
下面主要讲 Linux → 远程 syslog。
在远程 Linux 上开启 syslog 接收(以 rsyslog 为例):
# /etc/rsyslog.conf 或 /etc/rsyslog.d/remote.conf
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
重启:
systemctl restart rsyslog
在要发送日志的 Linux 上:
# /etc/rsyslog.conf
*.* @remote-ip:514 # UDP
# 或
*.* @@remote-ip:514 # TCP(更可靠)
示例:
*.* @@192.168.1.100:514
重启:
systemctl restart rsyslog
✅ 这样所有系统日志都会远程发送
auth.* @@192.168.1.100:514
local0.* @@logs.example.com:514
应用可用 local0~local7
logger -n 192.168.1.100 -P 514 "hello syslog"
指定 facility:
logger -n 192.168.1.100 -P 514 -t myapp -p local0.info "test"
import logging
import logging.handlers
handler = logging.handlers.SysLogHandler(address=('192.168.1.100', 514))
logging.getLogger().addHandler(handler)
docker run \
--log-driver=syslog \
--log-opt syslog-address=tcp://192.168.1.100:514 \
nginx
# 客户端
*.* @@(o)logs.example.com:6514
需要配置证书(rsyslog + gnutls / openssl)
如果你愿意,可以告诉我:
我可以给你精确配置示例。