Я хотел бы иметь возможность отправлять сообщение в формате RFC5452 в rsyslog, используя /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, и если нет, то как его исправить?