rsyslog 集中式日志的消息大小上限是多少?

RFC 3164 规定完整消息不超过 1024 字节;rsyslog 上限取决于版本、输入模块和配置,超限可能截断、拆分或丢弃,可用 $MaxMessageSize 调整。本文说明限制来源与调整方法。

最佳实践
rsyslog 集中式日志的消息大小上限是多少?封面

RFC 3164 规定完整 syslog 消息(含头部)不超过 1024 字节。rsyslog 的接收上限还取决于版本、输入模块和配置,可通过 $MaxMessageSize 调整;超限可能被截断、拆分或丢弃,不能只按 UDP/TCP 判断。

调整方法

# rsyslog.conf(旧式语法)
$MaxMessageSize 64k

# 新式 RainerScript
global(maxMessageSize="64k")

注意事项

  1. 传输方式:UDP 受网络 MTU 限制(过大会被 IP 分片甚至丢失),大消息宜使用正确配置消息分帧和大小上限的 TCP 或 RELP,但它们也不能保证无限长度或绝不丢失;
  2. 上下游一致:接收端调大了,发送端(rsyslog/syslog-ng/应用)也要支持;
  3. 长日志的正确姿势:堆栈跟踪等多行内容应在采集端合并为一条(多行解析),而不是依赖超大消息。

常见问题(FAQ)

Q:被截断的日志能恢复吗? 接收端缺失的字节无法凭空恢复;截断可能发生在发送、传输或接收环节。若源文件仍完整,可调整相应环节后重新采集。

Q:怎么验证截断? 发一条已知超长消息,对比接收端内容长度。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台