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

Записывать сообщения журнала с привязкой / именем в другой файл с помощью rsyslog

Прямо сейчас содержимое файла /etc/rsyslog.conf, который управляет размещением названных сообщений журнала, выглядит так:

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;;kern.none     /var/log/messages

Помещая следующее в фронт этого раздела правильно записывает "именованные" сообщения в /var/log/ named/ named.log.

# Write named/bind messages to their own log file
:programname, isequal, "named"                          /var/log/named/named.log

Проблема в том, что эти «именованные» сообщения все еще записываются в файл / var / log / messages. Как мне изменить строку, генерирующую / var / log / messages, чтобы не записывать "именованные" сообщения?

Примечание. Это rsyslog v5, поставляемый с RHEL / CentOS 6.

Приложение: принятый ниже ответ

# Write named/bind messages to their own log file, then discard (tilde)
:programname, isequal, "named"                          /var/log/named/named.log
:programname, isequal, "named"                          ~

Использование отрицания может быть полезно, если вы хотите выполнить некоторую общую обработку, но исключить некоторые конкретные события. Вы можете использовать действие сброса вместе с этим. Образец будет:

. /var/log/allmsgs-including-informational.log

: msg, contains, "информационный" ~

. /var/log/allmsgs-but-informational.log

Не пропустите красную тильду в строке 2! В этом примере все сообщения записываются в файл allmsgs-включая-informational.log. Затем все сообщения, содержащие строку «информационный», отбрасываются. Это означает, что строки файла конфигурации под «строкой сброса» (номер 2 в нашем примере) не будут применяться к этому сообщению. Затем все остальные строки также будут записаны в файл allmsgs-but-informational.log.

http://www.rsyslog.com/doc/rsyslog_conf_filter.html