首页/系统/信创系统运维速查/集中日志:rsyslog 转发到日志服务器
服务与运维65 条

集中日志:rsyslog 转发到日志服务器

客户端一行配置即可把日志转出:*.* @@服务器:514 走 TCP、@:514 走 UDP;服务端加载 imtcp 模块并用模板按来源主机、程序名分目录落盘。

信创系统运维速查系统更新于 2026-10-13

日志集中收集怎么做

把日志转发到集中日志服务器,客户端通常只需要一小段配置:老写法用两个符号加地址表示走可靠传输,新写法用动作对象的写法指定目标、端口与协议。服务端需要加载接收模块并监听端口,再用模板把不同来源的日志分目录落盘,便于按主机与程序检索。

基本信息

标准端口514
可靠传输传统写法用两个符号,动作写法指定协议为 tcp
客户端配置/etc/rsyslog.d/ 下的独立文件
服务端模块加载传输控制协议的接收模块并监听
落盘模板按主机名与程序名分目录

典型使用场景

  • 多台主机日志统一收集,便于集中检索
  • 安全合规要求日志异地留存
  • 业务主机磁盘有限,日志及时外送
  • 故障复盘时跨主机对齐时间线
  • 为日志分析平台提供统一数据源

客户端配置

客户端配置
# /etc/rsyslog.d/90-remote.conf 新式动作写法
*.* action(type='omfwd' target='10.0.0.20' port='514' protocol='tcp')
# 传统写法:两个符号表示可靠传输,一个符号表示无连接传输
*.* @@10.0.0.20:514     # 走传输控制协议
# *.* @10.0.0.20:514    # 走用户数据报协议,长配置里按需选择
systemctl restart rsyslog

服务端配置与验证

服务端配置与验证
# /etc/rsyslog.conf 中加载模块并监听
module(load='imtcp')
input(type='imtcp' port='514')
template(name='RemotePerHost' type='string' string='/data/logs/%HOSTNAME%/%PROGRAMNAME%.log')
*.* ?RemotePerHost
# 验证
systemctl restart rsyslog
ss -lntp | grep 514                  # 确认端口在监听
logger -p user.info 'remote log test'   # 客户端造一条测试日志
tail -5 /data/logs/$(hostname)/*.log 2>/dev/null | tail -5

传输方式对比

方式可靠性适用场景
无连接传输可能丢包内网低要求场景
可靠传输有重传机制跨网段与重要日志
加密传输需额外模块合规要求高的链路
本地落盘加转发双份留存既要本地查又要集中

部署检查点

  • 客户端与服务端都完成配置并重启
  • 服务端端口处于监听状态
  • 两端防火墙均放行目标端口
  • 测试日志能出现在服务端落盘目录
  • 日志目录已纳入容量监控

落地建议

  • 跨网段转发优先选可靠传输
  • 服务端按主机与程序分层存放
  • 日志目录纳入容量监控与轮转
  • 客户端配置放独立文件便于管理
  • 定期抽查是否仍有日志持续到达
标准端口的无连接传输没有加密也缺乏完整性保护,容易被伪造且可能丢包;按合规要求评估后选择可靠传输或加密方案。

易错点

  • 服务端未放行端口:客户端侧看似配置正确但日志静默不达,先确认防火墙与监听
  • 模板拼出的路径无上限:单目录文件过多或单文件过大都会拖慢检索,按天或按主机分层
  • 只配转发不做验证:用测试日志与落盘文件确认链路真的通了,避免长期空转
  • 客户端与服务端都改配置但只重启一侧:配置未加载导致行为与预期不符
  • 忽略日志目录容量:集中收集后磁盘增长很快,需纳入监控与轮转策略

数据来源与参考

  • rsyslog 官方文档(omfwd/imtcp)
  • man 5 rsyslog.conf
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌