Долгое время использую в syslog-ng следующий темплейт для вывода:
destination d_messages { file("/var/log/messages"
template("$R_YEAR.$R_MONTH.$R_DAY $R_HOUR:$R_MIN:$R_SEC $HOST($FACILITY.$PRIORITY) $MESSAGE\n") ); };
в логе это выглядело так:
2010.02.08 18:59:53 server(auth.info) sshd[31489]: Accepted publickey for john from 192.168.1.3 port 57705 ssh2
2010.02.24 17:14:57 server(authpriv.info) sshd[22099]: pam_unix(sshd:session): session closed for user xxxx
обратите внемание, после "(фацилити.приорити)" в самом $message идет имя процесса и [пид]. в случае kernel - просто «kernel» без пида.
Начиная с 3.x версии при том же темплейте пропал кусок с именем программы и опциональным пидом из $message. теперь, с точно таким же темплейтом выглядит так:
2010.02.24 10:58:02 server(daemon.info) synchronized to 193.125.143.172, stratum 2
2010.02.24 11:02:07 server(auth.info) Invalid user xxxxx from 192.168.x.x
я добавил $PROGRAM[$PID]:
destination d_messages { file("/var/log/messages"
template("$R_YEAR.$R_MONTH.$R_DAY $R_HOUR:$R_MIN:$R_SEC $HOST($FACILITY.$PRIORITY) $PROGRAM[$PID]: $MESSAGE\n") ); };
стало почти хорошо:
2010.02.24 14:04:19 server(auth.info) sshd[14741]: Accepted keyboard-interactive/pam for xxxx from 192.168.x.x port 43208 ssh2
но, теперь появились лишние пустые скобки у kernel
2010.02.24 14:06:59 server(kern.info) kernel[]: EXT3 FS on dm-3, internal journal
вопрос - как привести сисло к предидущему виду, что бы не переписывать тонны фильтров в обработчиках.