配置 rsyslog 实现日志远程集中收集

2025.5.29 杂七杂八 1792

配置 rsyslog 实现日志远程集中收集 杂七杂八-第1张

本文详细介绍如何通过rsyslog实现跨服务器日志集中管理,涵盖服务端/客户端配置、TLS加密传输、日志过滤等核心步骤,并提供企业级日志管理的最佳实践方案,帮助运维人员构建高效可靠的日志收集系统。

一、rsyslog 日志集中管理的核心价值

在分布式系统架构中,日志集中管理是运维监控的基础需求。rsyslog作为Linux平台的高性能日志处理系统,具备:

  • 支持RFC标准协议(RFC5424/RFC3164)
  • 每秒百万级日志处理能力
  • 灵活的过滤和转发规则
  • TLS加密传输保障

二、服务端配置(日志接收端)

修改/etc/rsyslog.conf配置文件:

 启用TCP/UDP模块
module(load="imudp")
input(type="imudp" port="514")

module(load="imtcp")
input(type="imtcp" port="514")

 定义日志存储模板
template(name="RemoteLogs" type="string" 
         string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")

 应用存储规则
if $fromhost-ip != '127.0.0.1' then ?RemoteLogs
& stop

创建日志存储目录并重启服务:

mkdir -p /var/log/remote
systemctl restart rsyslog
firewall-cmd --add-port=514/tcp --permanent
firewall-cmd --reload

三、客户端配置(日志发送端)

/etc/rsyslog.d/remote.conf中添加:

 指定日志服务器地址
. @@192.168.1.100:514   @@表示TCP协议,@表示UDP

 可选:本地缓存转发失败的日志
$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

验证配置并重启服务:

rsyslogd -N1
systemctl restart rsyslog

四、高级安全配置(TLS加密)

1. 生成证书:

 服务端生成CA证书
openssl req -x509 -newkey rsa:2048 -keyout ca-key.pem -out ca-cert.pem -days 365

 客户端生成证书请求并签名
openssl req -newkey rsa:2048 -nodes -keyout client-key.pem -out client-req.pem
openssl x509 -req -in client-req.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem

2. 服务端配置:

module(load="imtcp" StreamDriver.Name="gtls" 
       StreamDriver.Mode="1" 
       StreamDriver.AuthMode="x509/name")
input(type="imtcp" port="6514" 
      name="tls_input"
      ruleset="remote")

五、企业级实践建议

  • 日志轮转:配合logrotate设置合理的日志保留策略
  • 性能优化:批量传输模式设置$ActionQueueSize参数
  • 监控报警:对日志接收异常建立监控指标
  • 多级架构:区域中心节点+全局汇聚节点的分层架构

六、常见问题排查

现象 排查命令 解决方案
日志未接收 tcpdump -i eth0 port 514 检查防火墙/SELinux策略
TLS连接失败 openssl s_client -connect IP:6514 验证证书CN与主机名匹配

通过以上配置,可构建支持日均TB级日志量的企业级收集系统。建议配合Elasticsearch或Graylog实现日志分析和可视化。

评论