Назад | Перейти на главную страницу

rsyslog фильтрует содержимое сообщения и возможности

Я нашел примеры того, как фильтровать содержимое записи журнала с помощью rsyslog. Но есть ли способ сделать это, чтобы фильтровать только содержимое определенного объекта? Например что-то вроде:

if local0.* msg contains "foo"

Но с реальным синтаксисом вместо того, что я только что придумал.

Вам нужно будет сделать два последовательных фильтра, а не оба в одной строке.

:msg, contains, "some-text"
if $syslogfacility-text == "facility" then /var/log/somelog.log
~

Редактировать:

Я беру это обратно. Теперь я видел, как это делается в обоих направлениях. Я только что нашел этот пример в wiki rsyslog, который можно адаптировать.

if $programname == 'popa3d' and $syslogseverity <= '6' then /var/log/popa3d.log

Вы, конечно, подставите в пример свои условия.

if $syslogfacility-text == 'local0' and $msg contains 'some-text' then /var/log/somelog.log
& ~

Rsyslog вики
Документы Rsyslog