LINUX.ORG.RU
решено ФорумAdmin

syslog-ng, изменение формата вывода


0

0

Долгое время использую в 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

вопрос - как привести сисло к предидущему виду, что бы не переписывать тонны фильтров в обработчиках.

почитай чейнджлог.
имя программы и pid хранится в $MSGHDR
попробуй store-legacy-msghdr или добавь $MSGHDR перед $MESSAGE

Marmirus ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.