You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Syslog RFC5424与RFC6587的差异及RFC6587日志样例咨询

RFC5424与RFC6587的核心区别(Syslog发送场景)

两者不属于同一维度的标准,核心差异如下:

  • 定位不同:RFC5424是Syslog消息内容格式标准,定义单条日志的字段结构;RFC6587是Syslog over TCP的传输帧标准,解决TCP流无消息边界导致的粘包问题
  • 适用范围不同:RFC5424可用于UDP、TCP、TLS所有Syslog传输场景;RFC6587仅适用于TCP/TLS传输场景,不可用于UDP
  • 功能边界不同:RFC5424不涉及传输层的消息拆分、拼接逻辑;RFC6587不关心封装的日志内容是RFC5424格式还是旧的RFC3164格式,仅负责定义消息的边界标识规则
  • 边界实现方式不同:RFC5424本身无边界处理能力,UDP传输依赖数据报天然边界,TCP传输无封装时会出现粘包;RFC6587提供两种边界实现:长度前缀法(推荐生产使用)、非转义换行分隔法(兼容性优先场景使用)
RFC6587格式标准样例

生产环境最常用长度前缀法封装,格式为[十进制消息长度] + [单个空格] + [完整Syslog消息],样例如下:

185 <34>1 2024-05-20T14:30:00.123Z web-server01 nginx 12345 request-001 [example@32473 method="GET" status="200" path="/index.html"] Client 192.168.1.100 requested resource successfully, response time 12ms

样例说明:

  • 开头的185为十进制数字,代表空格后的整条Syslog消息总字节数为185
  • 长度前缀后必须跟1个半角空格作为分隔符
  • 空格后的内容为符合RFC5424标准的Syslog消息,也可替换为RFC3164等其他Syslog格式内容,RFC6587无强制要求

如果使用换行分隔法,无需加长度前缀,直接在每条完整Syslog消息末尾添加1个\n(ASCII 0x0A)作为分隔即可,仅要求消息内容本身不包含未转义的换行符。

内容的提问来源于stack exchange,提问作者Tom Neeman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:06:07