本文详细介绍如何通过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实现日志分析和可视化。
评论