rsyslog filtra o conteúdo e a facilidade da mensagem

5

Eu encontrei exemplos de como filtrar com base no conteúdo de uma entrada de log com rsyslog. Mas existe uma maneira de fazer isso, então é só filtrar o conteúdo de uma determinada instalação? Por exemplo, algo como:

if local0.* msg contains "foo"

Mas com uma sintaxe real em vez do que acabei de inventar.

    
por Kyle Brandt 02.11.2010 / 16:16

1 resposta

2

Você precisará fazer dois filtros sequenciais em vez de ambos em uma linha.

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

Editar:

Eu aceito isso. Eu já vi isso das duas maneiras agora. Acabei de encontrar este exemplo no wiki do rsyslog que deve ser adaptável.

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

Você, naturalmente, substituirá suas condições pelo exemplo.

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

Rsyslog Wiki
Documentos do Rsyslog

    
por 02.11.2010 / 16:25