我希望能够使用套接字向 rsyslog 发送 RFC5452 格式的消息/dev/log
。我尝试了以下多种变体:
echo "<29>1 2003-10-11T22:14:15Z mymachine.example.com su - ID47 - 'su root' failed for lonvick on /dev/pts/8" | socat - UNIX-SENDTO:/dev/log
但无论我尝试了什么,我认为它似乎都无法成为 RFC5452 消息,而是将其视为较旧且结构较差的格式。更具体地说,上面的行在日志文件中生成了以下行:
<29> t=2015-07-13T08:10:20.542111+00:00 h=vm01[-] a=1 m=- sd='-' msg=' 2003-10-11T22:14:15Z mymachine.example.com su - ID47 -'su root' failed for lonvick on /dev/pts/8'
模板在哪里
$template my-rfc5424,"<%PRI%> t=%TIMESTAMP:::date-rfc3339% h=%HOSTNAME%[%PROCID%] a=%APP-NAME% m=%MSGID% sd='%STRUCTURED-DATA%' msg='%msg%'\n"
%APP-NAME%
输出为1
- 即后面的字符<29>
(如果我将其更改为,2
则%APP-NAME%
也会输出为2
)。所有其他字段都输出为-
,然后消息本身就是其他所有内容,包括前导空格和所有内容。
这难道不是有效的 RFC5452 格式的消息吗?如果不是,那么应如何将其修复为有效的 RFC5452 格式的消息?