Rsyslog: RFC5424 格式消息中的前导空格

创建于 2014-11-22  ·  3评论  ·  资料来源: rsyslog/rsyslog

当利用 RSYSLOG_SyslogProtocol23Format 模板发送消息时,MSG 字段包含一个前导空格。

正在使用以下配置:

$ActionQueueFileName name1
$ActionQueueMaxFileSize 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
$DefaultNetstreamDriverCAFile /path/to/CA.crt
$ActionSendStreamDriver gtls
$ActionSendStreamDriverMode 1
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer syslog.domain.com
*.* @@(o)syslog.domain.com:1234;RSYSLOG_SyslogProtocol23Format

发出命令logger test123会导致将以下消息发送到服务器。 请注意结构化数据字段的 NILVALUE 后面的两个空格:
<13>1 2014-11-21T19:02:19.219331-06:00 host1 user1 - - - test123

上述日志映射为RFC5424消息格式如下:
优先级 = <13>
版本 = 1
时间戳 = 2014-11-21T19:02:19.219331-06:00
主机名 = 主机 1
APP-NAME = user1
过程 ID = -
MSGID = -
结构化数据 = -
味精 = 'test123'

MSG 字段的值用上面的单引号括起来,以说明消息中的前导空格。 此服务器发送的每条消息都有前导空格。 以上只是一个使用记录器的例子。

rsyslogd 8.4.2,编译:
FEATURE_REGEXP:是的
GSSAPI Kerberos 5 支持:否
FEATURE_DEBUG(调试构建,慢代码):否
支持 32 位原子操作:是
支持 64 位原子操作:是
内存分配器:系统默认
运行时检测(慢代码):否
uuid 支持:是的
RainerScript 整数中的位数:64

在此流量的数据包捕获中也可以观察到此行为(当然禁用 TLS 以进行测试)。
0x0070: 202d 202d 2020 7465 7374 3132 330a .-.-..test123.

如果我可以提供任何其他信息,或者我的测试用例/配置有缺陷,请告诉我。 谢谢! :微笑:

最有用的评论

mmrm1stspace是在 v8.24.0 中添加的。

在这里评论,因为我在使用谷歌搜索时首先发现了这个问题。

所有3条评论

前导空格在那里是因为消息源自 RFC3164 格式,并且如果在标记后有空格(通常是这种情况),这是 MSG 字段的一部分。 因此,MSG 实际上确实以空格开头。 如果您想删除该空间,您可以通过模板处理器执行此操作,如有必要,使用条件逻辑(如果需要处理 3164 和 5424 发起的消息)。

mmrm1stspace是在 v8.24.0 中添加的。

在这里评论,因为我在使用谷歌搜索时首先发现了这个问题。

该线程已被自动锁定,因为它关闭后没有任何最近的活动。 请为相关错误打开一个新问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

yfliuyanyan picture yfliuyanyan  ·  3评论

jay7x picture jay7x  ·  8评论

yfliuyanyan picture yfliuyanyan  ·  4评论

ChenQianCQ picture ChenQianCQ  ·  6评论

mashayev picture mashayev  ·  9评论