Configurando o Rsyslog para interromper o log de determinadas mensagens

13

Eu quero parar o rsyslog de registrar essas mensagens.

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

Eu tentei isso no /etc/rsyslog.conf, mas as mensagens ainda estão registradas.

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

Alguém pode me apontar na direção certa?

Stephen
fonte

Respostas:

8

Se você usa uma versão recente do rsyslog (7 por exemplo), precisa fazer

& stop

depois da sua mensagem. Deixar de fazer isso lhe dará

warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
Karlo
fonte
6

O rsyslog precisa de uma instrução para interromper o registro após a partida. Adicione esta linha imediatamente após a instrução if que você já possui.

& ~

Você também pode precisar mover ambas as instruções no arquivo conf para que elas sejam analisadas antes de algumas das outras instruções que possam estar registrando-as em mensagens. Eu mudo minha configuração do rsyslog para ter a seguinte aparência

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

Isso garante a ordem que eu quero e facilita para o gerenciamento de configuração enviar atualizações.

Kashani
fonte
3
& ~foi descontinuado nas versões mais recentes do rsyslog: rsyslog.com/doc/v8-stable/compatibility/v7compatibility.html . Também ~é conhecida como ação de descarte. Se você pesquisar nessa página, verá a observação sobre ela. Você deveria estar usando & stopdaqui para frente.
Slm
2

O comando é "$ stop", não "$ stop". Há uma enorme diferença lá.

Marius Flage
fonte
4
Por favor, esclareça. Tanto quanto eu sei, é if ... then stopou & stop. Nunca vi uma $stopvariável mencionada em nenhum lugar. Perdi algo?
mivk