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

传统 syslog 协议(RFC 3164)单条消息上限约 1KB,超长会被截断;rsyslog 默认上限通常 8KB,可用 $MaxMessageSize 调大。本文说明限制来源与调整方法。

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

传统 syslog 协议(UDP,RFC 3164)单条消息约定不超过 1024 字节——超长会被截断。rsyslog 实际默认值更大(2KB-8KB 视版本),并可通过 $MaxMessageSize 调整,TCP 传输下可到上百 KB。

调整方法

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

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

注意事项

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

观测云对照

观测云 DataKit 日志采集支持长文本(默认上限远大于 syslog 传统限制),多行日志按行首正则合并为单条上报,天然规避截断问题。

常见问题(FAQ)

Q:被截断的日志能恢复吗? 不能——发送端发出时就已截断,只能调整源头。

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

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

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

立即开始

选择观测云版本

代码托管平台