【发布时间】:2019-11-02 15:33:30
【问题描述】:
我正在尝试将 rsyslog 配置为以 RFC5424 格式输出。这意味着必须在 syslog 标头中输出 PROCID。如果没有标题,它应该在其位置输出一个破折号 (-)。但是,有些事件输出只是空白,有些有实际值。
这是在 Amazon Linux 上运行的 rsyslogd 5.8.10。
这里是配置行:
$template CustomFormat,"<%PRI%>1 %timegenerated:1:23:date-rfc3339%-00:00 %HOSTNAME% %app-name% b%procid%b %msgid% %STRUCTURED-DATA%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
$ActionFileDefaultTemplate CustomFormat
请注意,我在 %procid% 的每一侧都放置了一个“b”,以使其更明显(这部分不符合 RFC5424)。这是两行示例输出。
<87>1 2019-06-19T20:03:01.929-00:00 ip-10-90-0-15 crond b29408b - - pam_unix(crond:account): expired password for user root (password aged)
<85>1 2019-06-19T20:17:18.150-00:00 ip-10-90-0-15 sudo bb - - ssm-user : TTY=pts/0 ; PWD=/ ; USER=root ; COMMAND=/bin/vi /etc/rsyslog.conf
第一行是正确的,但第二个例子应该是“bb”而不是“bb”。我应该怎么做才能使空白的 %procid% 显示为破折号?它适用于 %msgid% 和 %STRUCTURED-DATA%。
有没有更好的方法来获得 RFC5424 输出? (我必须使用 -00:00 而不是 Z。)
【问题讨论】:
标签: rsyslog