Настройка Rsyslog для остановки регистрации определенных сообщений

13

Я хочу, чтобы rsyslog не регистрировал эти сообщения.

[168707.740364] TCP: Peer 192.168.100.1:46199/41503 unexpectedly shrunk window 2027330493:2027331431 (repaired)

Я попробовал это в /etc/rsyslog.conf, но сообщения все еще регистрируются.

if $msg contains 'unexpectedly' then /dev/null

Может кто-то указать мне верное направление?

Стивен
источник

Ответы:

8

Если вы используете последнюю версию rsyslog (например, 7), вам нужно сделать

& stop

после вашего сообщения. Невыполнение этого даст вам

warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
Karlo
источник
6

Для rsyslog требуется оператор, чтобы прекратить запись в журнал после совпадения. Добавьте эту строку сразу после оператора if, который у вас уже есть.

& ~

Вам также может понадобиться переместить оба оператора в файл conf, чтобы они были проанализированы перед некоторыми другими операторами, которые могли бы записывать их в сообщения. Я изменяю свою конфигурацию rsyslog, чтобы она выглядела следующим образом

/etc/rsyslog.conf ($IncludeConfig /etc/rsyslog.d/*.conf)
/etc/rsyslog.d/40-specificdaemon.conf
/etc/rsyslog.d/99-general.conf

Это обеспечивает нужный мне порядок и позволяет легко управлять обновлениями.

Кашани
источник
3
& ~устарела в новых версиях rsyslog: rsyslog.com/doc/v8-stable/compatibility/v7compatibility.html . Это ~также называется действием отмены, если вы будете искать на этой странице, вы увидите заметку об этом. Вы должны использовать & stopидти вперед.
Slm
2

Команда «$ stop», а не «$ stop». Там огромная разница.

Мариус Флаж
источник
4
Просьба уточнить. Насколько я знаю, это if ... then stopили & stop. Никогда не видел $stopнигде упомянутой переменной. Я что-то пропустил?
Mivk