rsyslog基于udp发送接收日志
rsyslog 配置远程日志发送和接收(基于 UDP)。
一、架构思路
[Client 节点 rsyslog] --UDP/514--> [Log Server rsyslog] --> [日志存储文件 或 后端系统]
二、日志接收端(Log Server)配置
编辑
/etc/rsyslog.conf或/etc/rsyslog.d/remote.conf
添加 UDP 接收模块和监听端口:1
2
3
4# 加载 UDP 模块
module(load="imudp")
# 监听 514 端口
input(type="imudp" port="514")配置存储规则(例如按来源主机写日志):
1
2# 按主机名存放日志
*.* /var/log/remote/%HOSTNAME%/messages.log👉
%HOSTNAME%会自动替换成客户端主机名。重启服务:
1
2systemctl restart rsyslog
systemctl enable rsyslog防火墙放行:
1
2firewall-cmd --add-port=514/udp --permanent
firewall-cmd --reload
三、日志发送端(Client)配置
编辑
/etc/rsyslog.conf或/etc/rsyslog.d/remote.conf
添加远程日志目标:1
2# 发送所有日志到远程 UDP 514 端口
*.* @192.168.1.100:514- 单个
@表示 UDP @@表示 TCP
如果你只想转发特定 facility,比如只转发 auth:
1
authpriv.* @192.168.1.100:514
- 单个
重启服务:
1
systemctl restart rsyslog
四、验证
在客户端生成日志:
1
logger -p local0.info "This is a test log from client"
在服务端查看:
1
tail -f /var/log/remote/<client-host>/messages.log
五、流程图

⚠️ 注意事项:
- UDP 无连接,日志可能丢失;生产推荐用 TCP 或 RELP。
- 如果集中日志量大,UDP 可能导致 包丢失、日志缺失。
- 对安全要求高的场景,考虑 **加密传输 (TLS)**。