Как фильтровать сообщения cron в syslog-ng
У меня небольшая проблема. Я не знаю, как фильтровать задания cron в syslog-ng. Это спам мой журнал.
Jun 05 16:09:01 CRON: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 05 16:09:01 /USR/SBIN/CRON: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime))
Jun 05 16:09:01 CRON: pam_unix(cron:session): session closed for user root
Я пытался использовать фильтр, но это не сработало.
filter test { match("[ -x /usr/lib/php5/maxlifetime ]"); };
log { source(src); filter(test); destination{d_null}; flags(final); };
1 ответ
Вы не понимаете, как применяются фильтры. Хотя этот фильтр и строка журнала выполняют именно то, о чем вы их просили, они не влияют на другие команды журнала, которые есть в других местах вашей конфигурации.
Вместо того, чтобы направлять этот фильтр в /dev/null, вы должны использовать его для исключения сообщений, соответствующих фильтру, в операторе фильтра для обычного журнала cron. Поскольку вы не включили полную конфигурацию системного журнала, я не уверен, что строка ниже будет идеально соответствовать, но вот пример того, как выбрать все строки cron, кроме тех, которые соответствуют вашему фильтру:
filter f_cron { facility(cron) and not filter(test); };