Ubuntu 上 Syslog 协议选择建议
- 优先顺序:在公网或不安全网络中,优先使用 TLS over TCP(RFC 5425);在受控内网追求可靠性时,使用 TCP;仅在低开销、可接受丢包的内部网络中考虑 UDP。如日志链路对可靠性要求极高且需端到端确认,可考虑 RELP。默认 Syslog 端口为 514。
协议对比与适用场景
| 协议 |
可靠性 |
加密 |
端口 |
典型场景 |
备注 |
| UDP |
否(无连接) |
否 |
514/udp |
低开销、可接受丢包的内部网络 |
延迟低但不保证顺序与到达 |
| TCP |
是(面向连接) |
否 |
514/tcp |
生产内网、跨机房传输 |
有重传与确认,顺序更可靠 |
| TLS/TCP |
是 |
是(TLS) |
514/tcp(应用层加密) |
公网、跨域、合规要求 |
需证书与对等校验,防窃听与篡改 |
| RELP |
是(可靠事件日志协议) |
否(可叠加 TLS) |
自定义 |
极高可靠、需确认机制 |
需 rsyslog 模块支持,配置复杂度更高 |
以上协议均为 rsyslog/syslog-ng 在 Ubuntu 上的常见选项;默认端口为 514。
快速配置示例 rsyslog
- 发送日志
- UDP:. @remote.example.com:514
- TCP:. @@remote.example.com:514
- 接收日志
- UDP 模块:
- module(load=“imudp”)
- input(type=“imudp” port=“514”)
- TCP 模块:
- module(load=“imtcp”)
- input(type=“imtcp” port=“514”)
- 应用与验证
- 重启服务:sudo systemctl restart rsyslog
- 发送端本地查看:tail -f /var/log/syslog
- 防火墙放行(UFW):sudo ufw allow 514/udp 或 sudo ufw allow 514/tcp
以上语法与端口为 Ubuntu 上 rsyslog 的常用做法。
防火墙与网络要点
- 放行端口:确保 514/udp 与/或 514/tcp 在主机与中间网络设备上开放(如 UFW、云安全组)。
- 加密传输:跨公网或合规场景优先启用 TLS;证书与主机名校验能显著提升安全性。
- 可靠性优先:对日志丢失零容忍时选 TCP/RELP;仅在对延迟极敏感且可容忍丢包时选 UDP。