Linux Syslog与远程日志服务器如何对接
导读:Linux Syslog与远程日志服务器对接指南 一 基本方案与协议选择 常用方案:使用系统自带的 rsyslog(主流发行版默认)或 syslog-ng 作为客户端,将日志通过 UDP/TCP 发送到远程日志服务器;在服务器侧开启接收并...
Linux Syslog与远程日志服务器对接指南
一 基本方案与协议选择
- 常用方案:使用系统自带的 rsyslog(主流发行版默认)或 syslog-ng 作为客户端,将日志通过 UDP/TCP 发送到远程日志服务器;在服务器侧开启接收并落盘或进一步转发到 Elasticsearch/Logstash 等。
- 协议取舍:
- UDP 514:低开销、实时性好,但在不可靠网络下可能丢包,生产环境不推荐单独使用。
- TCP 514:面向连接、更可靠,适合跨机房/公网链路。
- TLS 加密:强烈建议用于公网或不信任网络,优先选择 RFC5424 + TLS。部分设备/平台仅支持 RFC3164,需按服务器端能力选择。
二 客户端配置步骤
- rsyslog(通用)
- 安装与确认服务:多数发行版预装,可执行
rpm -qa | grep rsyslog或rsyslogd -v检查;确保服务已启用。 - 编辑
/etc/rsyslog.conf或/etc/rsyslog.d/remote.conf,在末尾添加转发规则:- UDP:
*.* @remote_server_ip:514 - TCP:
*.* @@remote_server_ip:514
- UDP:
- 重启服务:
systemctl restart rsyslog;如需开机自启:systemctl enable rsyslog。 - 仅转发指定设施(示例):
kern.* @remote_server_ip:514。 - 非 syslog 文件日志(如应用写文件):加载
imfile模块并配置输入,再转发到远端。
- 安装与确认服务:多数发行版预装,可执行
- syslog-ng(若系统采用 syslog-ng)
- 安装:
apt-get install syslog-ng或yum install syslog-ng。 - 编辑
/etc/syslog-ng/syslog-ng.conf:- destination:
destination d_remote { udp("remote_server_ip" port(514)); } ;(或 tcp) - log:
log { source(s_src); destination(d_remote); } ;
- destination:
- 重启:
systemctl restart syslog-ng。
- 安装:
- 快速验证(客户端):
logger -p user.info "syslog remote test",在服务器侧对应日志文件或平台查看是否收到。
三 服务器端接收配置
- rsyslog 服务器
- 编辑
/etc/rsyslog.conf,在MODULES段启用网络输入模块(如imudp/imtcp),常见配置示例:module(load="imudp") input(type="imudp" port="514"))module(load="imtcp") input(type="imtcp" port="514"))
- 在
RULES段按需写入本地文件,例如:kern.* /var/log/kern.log*.info; mail.none; authpriv.none; cron.none /var/log/messagesauthpriv.* /var/log/securecron.* /var/log/cron
- 重启:
systemctl restart rsyslog。
- 编辑
- 传统 syslogd(仅在特定环境)
修改/etc/sysconfig/syslog(或同名配置),在SYSLOGD_OPTIONS中加入 -r(允许接收外来日志)、可选 -x(不解析 DNS)、-m 0(时间戳间隔);重启服务。 - 安全与合规建议
- 公网/跨域链路优先启用 TLS;部分平台/设备支持选择 RFC5424/RFC3164 与 UTF-8/GBK 编码,需与服务器一致。
四 防火墙与网络连通性
- 放行端口:确保服务器与客户端之间的 UDP/TCP 514 已放行(云环境需在安全组/ACL 同步开放)。
- 可达性测试:
- UDP:
nc -u -vz remote_server_ip 514 - TCP:
nc -vz remote_server_ip 514
- UDP:
- 路由与权限:确认网络路由可达、无访问控制拦截;必要时在服务器侧限制来源网段。
五 常见问题与最佳实践
- 只转发部分日志:避免
*.*无差别外发,按设施/级别精确匹配(如kern.*、*.info; mail.none; authpriv.none; cron.none)。 - 非 syslog 文件日志:使用 imfile 将文件“接入”syslog 再转发(示例见上文)。
- 可靠性优先:关键业务链路使用 TCP 或 TLS,必要时配合本地落盘与队列,防止远端不可达导致丢日志。
- 编码与协议一致:服务器若要求 RFC5424/TLS/UTF-8,客户端需与之匹配;部分设备仅支持 RFC3164。
- 快速排障清单:
- 服务端是否在 514 端口监听(
ss -lunpt | grep 514或netstat -anp | grep 514)。 - 客户端配置语法是否正确、是否重启生效。
- 防火墙/安全组是否放行。
- 使用
logger发送测试日志并在服务器侧tail -f对应日志文件验证。
- 服务端是否在 514 端口监听(
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Syslog与远程日志服务器如何对接
本文地址: https://pptw.com/jishu/778024.html
