如何在Linux利用Rsyslog配置多层级转发架构实现百万级节点的集中化日志采集

胖芳大大_2931

胖芳大大_2931

2026-05-12

244人浏览

原创

rsyslog 不适用于百万级节点集中日志采集,仅可作为边缘层轻量代理;需分层解耦,由kafka等中间件承担核心转发与缓冲,rsyslog须限于单机或小规模汇聚,并启用异步队列、relp、tls及严格连接限制。

如何在linux利用rsyslog配置多层级转发架构实现百万级节点的集中化日志采集

直接说结论:rsyslog 本身不适用于百万级节点的集中化日志采集,它不是为这种规模设计的。强行用单层或简单多层 rsyslog 转发会迅速遇到性能瓶颈、连接数溢出、丢包率飙升、模板解析延迟、磁盘 I/O 崩溃等问题。真正的百万级架构必须分层解耦,rsyslog 只能承担其中某一级的轻量角色(如边缘汇聚),不能做核心枢纽。

为什么 rsyslog 不适合百万节点直连或浅层转发

rsyslog 的 TCP 连接模型是每个客户端独占一个 socket,百万并发连接意味着百万级 file descriptor 占用和内核调度压力;UDP 虽无连接,但缺乏流控与重传,网络抖动下丢包不可控;其单进程/多线程模型在高吞吐下易成瓶颈;日志落盘若未配异步写+轮转+压缩,磁盘将率先打满;默认模板引擎在每条日志都做字符串解析时 CPU 消耗陡增。

可行的多层级架构中 rsyslog 的准确定位

在可落地的百万级方案里,rsyslog 应被限制在最前端——作为“边缘日志代理”,只负责本机或同机房少量主机的日志收拢与初步过滤,再交由更健壮的中间件接力:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 第1层(边缘层):每台服务器或每 10–50 台同网段主机部署本地 rsyslog,启用 imudp + imtcp,仅收集 auth、kern、messages 等关键设施,用 if $programname == 'nginx' then @@... 做粗粒度过滤,转发至本区域汇聚节点(非中心)
  • 第2层(区域汇聚层):使用 Kafka 或 Fluentd 集群接收边缘层数据,完成协议统一(RFC5424)、字段标准化、分区分片、缓冲削峰;rsyslog 在此层不参与,仅作为 Kafka 的可选输入插件(需加载 omkafka 模块)
  • 第3层(中心处理层):Logstash/Flink/自研解析器消费 Kafka Topic,做字段提取、敏感信息脱敏、指标聚合;结果写入 Elasticsearch 或对象存储;rsyslog 完全退出该层
  • 补充说明:若必须用 rsyslog 承担第2层,须搭配 relp 协议(可靠事件日志协议)+ disk-assisted queue + TLS 加密,并严格限制每实例最大连接数($InputTCPServerStreamDriverMode 1 + $InputTCPServerConnectionLimit 1000),单节点上限建议不超 5000 节点

边缘层 rsyslog 必须启用的关键配置项

若你已在第1层使用 rsyslog,以下配置是稳定运行的基础(以 CentOS/RHEL 8+ 为例):

  • 加载模块:module(load="imudp") module(load="imtcp") module(load="omrelp")
  • 限流与队列:$ActionQueueFileName fwdq; $ActionQueueMaxDiskSpace 2g; $ActionQueueSaveOnShutdown on; $ActionResumeRetryCount -1
  • 安全加固:$DefaultNetstreamDriver gtls; $DefaultNetstreamDriverCAFile /etc/pki/tls/certs/ca.pem; $DefaultNetstreamDriverCertFile /etc/pki/tls/certs/client.crt; $DefaultNetstreamDriverKeyFile /etc/pki/tls/private/client.key
  • 转发规则(Reliable):*.* :omrelp:10.10.20.5:20514;RSYSLOG_ForwardFormat(目标为第2层 Kafka-Relay 节点)
  • 关闭冗余功能:$OmitLocalLogging on; $IMJournalStateFile /var/lib/rsyslog/journal.state

验证与可观测性不能依赖默认方式

百万级下传统 tail -f /var/log/messages 或 rsyslogd -N1 无法反映真实链路状态:

  • 用 rsyslogd -d 抓取启动时初始化日志,确认模块加载无 warning
  • 监控 /proc/sys/net/core/somaxconn 和 /proc/sys/fs/file-nr,防止连接队列溢出或句柄耗尽
  • 在边缘节点部署轻量 exporter(如 rsyslog_exporter),暴露 rsyslog_queue_length、rsyslog_forward_failures_total 等指标到 Prometheus
  • 定期抽样比对:从某台源主机写入一条带唯一 trace_id 的测试日志,检查是否在第2层 Kafka 中对应 partition 出现且时间戳偏差

不复杂但容易忽略:百万级成败不在转发协议本身,而在于每一层的容量规划、失败降级策略(如本地磁盘缓存 fallback)、以及日志生命周期管理(保留策略、冷热分离)。rsyslog 是把好刀,但不能拿它去建摩天大楼的地基。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3930

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3373

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2533

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6110

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5762

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3373

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2885

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3099

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习