rsyslog: descarta várias mensagens

0

Como posso descartar várias mensagens de uma só vez usando o rsyslog? Isso não funciona e não consigo encontrar um exemplo de trabalho:

# Do not log any keepass and chmomium messages
if $programname == 'chromium.desktop'       then /dev/null
if $programname == 'keepass2.desktop'       then /dev/null

& stop

A solução abaixo funciona, mas mostra um erro ao verificar com rsyslogd -N1 -f <config_file>

rsyslogd: version 8.4.2, config validation run (level 1), master config /etc/rsyslog.d/00-discard.conf
rsyslogd: CONFIG ERROR: there are no active actions configured. Inputs will run, but no output whatsoever is created. [try http://www.rsyslog.com/e/2103 ]
rsyslogd: run failed with error -2103 (see rsyslog.h or try http://www.rsyslog.com/e/2103 to learn what that number means)
    
por Jan 26.12.2016 / 20:08

2 respostas

0

A linha & stop significa "repita o seletor anterior" e execute a ação "stop", que interrompe o processamento da mensagem selecionada. Então você precisaria colocá-lo após cada linha de seleção if ... . No entanto, como sua ação é escrever para /dev/null , você também pode fazer com que a primeira linha faça o que quiser, ou seja,

if $programname == 'chromium.desktop'       then stop
if $programname == 'keepass2.desktop'       then stop
    
por 26.12.2016 / 21:44
0

Existe outra maneira de descartar as mensagens descritas aqui: Descarte de mensagens indesejadas

Em vez de marcar a propriedade "msg" como no exemplo, basta verificar a propriedade "programname".

:programname, contains, "chromium.desktop" ~

:programname, contains, "keepass2.desktop" ~

    
por 31.05.2017 / 23:48

Tags