Я пытаюсь настроить вывод rsyslog в формате RFC5424.Это означает, что PROCID должен быть выведен в заголовке системного журнала.Если заголовка нет, на его месте должна быть одна черта (-).Однако в некоторых выходных событиях оно просто пустое, а в некоторых есть действительное значение.
Это rsyslogd 5.8.10, работающий в Amazon Linux.
Вот строки конфигурации:
$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
Обратите внимание, что я поставил «b» на каждой стороне% procid%, чтобы сделать его более заметным (эта часть не соответствует 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.)