Ubuntu syslog日志传输方式
导读:Ubuntu syslog 日志传输方式概览 rsyslog 原生转发:使用 UDP/TCP 514 将日志发送到集中服务器,配置简洁、系统自带,适合大多数场景。 syslog-ng 转发:功能更灵活,支持细粒度路由与多目的地,适合复杂日...
Ubuntu syslog 日志传输方式概览
- rsyslog 原生转发:使用 UDP/TCP 514 将日志发送到集中服务器,配置简洁、系统自带,适合大多数场景。
- syslog-ng 转发:功能更灵活,支持细粒度路由与多目的地,适合复杂日志管道。
- 通过日志代理转发:以 Fluentd/Logstash 作为采集与转发中枢,便于与 Elasticsearch/Kafka 等生态集成。
- 传输协议选择:UDP 开销小但不可靠;TCP 可靠、可重传;生产环境常优先 TCP 或配合队列/缓冲提升稳健性。
rsyslog 发送与接收
- 发送端(客户端)
- 安装并启用服务:sudo apt-get update & & sudo apt-get install rsyslog & & sudo systemctl enable --now rsyslog
- 配置转发规则(示例为发送到远程 10.0.0.10:514):
- UDP:. @10.0.0.10:514
- TCP:. @@10.0.0.10:514
写入到 /etc/rsyslog.d/50-remote.conf 或直接在 /etc/rsyslog.conf 末尾追加。
- 使配置生效:sudo systemctl restart rsyslog
- 接收端(服务器)
- 启用网络输入模块与端口:
- UDP:
module(load=“imudp”)
input(type=“imudp” port=“514”) - TCP:
module(load=“imtcp”)
input(type=“imtcp” port=“514”)
- UDP:
- 可选:将网络日志单独落盘,例如 file(“/var/log/remote.log”);保存后重启 rsyslog。
- 防火墙放行:sudo ufw allow 514/udp 或 sudo ufw allow 514/tcp。
- 启用网络输入模块与端口:
syslog-ng 发送与接收
- 发送端(客户端)
- 安装:sudo apt-get update & & sudo apt-get install syslog-ng
- 配置示例(/etc/syslog-ng/syslog-ng.conf):
destination d_remote { udp(“10.0.0.10” port(514)); } ;
log { source(s_sys); destination(d_remote); } ;
如需 TCP,将 udp 改为 tcp。 - 生效:sudo systemctl restart syslog-ng
- 接收端(服务器)
- 配置示例:
source s_network { udp(ip(0.0.0.0) port(514)); tcp(ip(0.0.0.0) port(514)); } ;
destination d_local { file(“/var/log/remote.log”); } ;
log { source(s_network); destination(d_local); } ; - 生效:sudo systemctl restart syslog-ng。
- 配置示例:
通过 Fluentd 或 Logstash 转发
- Fluentd(td-agent)
- 安装:sudo apt-get update & & sudo apt-get install td-agent
- 配置示例(/etc/td-agent/td-agent.conf): @type syslog port 514 tag system.log @type none @type forward host **10.0.0.10** port **24224**
- 生效:sudo systemctl restart td-agent
- Logstash
- 安装 Logstash(略)
- 配置示例(/etc/logstash/conf.d/syslog.conf):
input { syslog { port => 514 type => “syslog” } }
output { tcp { host => “10.0.0.10” port => 5000 } } - 生效:sudo systemctl restart logstash
实践建议与排错要点
- 协议与可靠性:优先 TCP/514;如需更高可靠可结合本地缓冲/队列(如 rsyslog 队列)避免丢日志。
- 防火墙与监听地址:发送端与接收端均需放行 514/udp 与/或 514/tcp;云环境注意安全组/NACL 策略。
- 权限与端口:非 root 进程绑定 1–1023 端口需具备相应能力(CAP_NET_BIND_SERVICE),或改用高端口测试。
- 格式与解析:保持发送端与接收端 facility/severity 与解析规则一致,避免入库后字段错乱。
- 快速验证:
- 发送端执行:logger -p user.info “test remote log”
- 接收端查看:tail -f /var/log/syslog 或 /var/log/remote.log 是否出现该条日志。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu syslog日志传输方式
本文地址: https://pptw.com/jishu/752945.html
