problema com filtros rsyslog

1

Eu tenho que criar uma regra no arquivo rsyslog.conf para obter os logs de e-mail que, pelo menos, notam a prioridade, mas com exceção da prioridade do erro para um determinado caminho.

Aqui está a regra que tentei fazer para isso:

mail.notice,!err        -/var/log/usomail.log

O problema é que ele me registra os erros também, e eu não quero fazer isso. O que há de errado com minha regra?

    
por Daniel Fera 23.11.2015 / 21:19

1 resposta

0

Você está usando a vírgula , para separar mail.notice e !err . No entanto, isso é aditivo, então você está dizendo Aceitar mensagens em mail.notice e também todas !err . O que você quer é dizer Aceitar mensagens em mail.notice exceto mail.err .

A página do manual rsyslog.conf mostra isso, embora não seja tão claro quanto poderia seja:

You can specify multiple facilities with the same priority pattern in one statement using the comma (',') operator. You may specify as much facilities as you want. Remember that only the facility part from such a statement is taken, a priority part would be skipped.

Multiple selectors may be specified for a single action using the semicolon (';') separator. Remember that each selector in the selector field is capable to overwrite the preceding ones. Using this behavior you can exclude some priorities from the pattern.

Portanto, a solução é substituir a vírgula , por um ponto-e-vírgula ; e incluir a facilidade assim:

mail.notice;mail.!=err  -/var/log/usomail.log

Também há um exemplo semelhante na syslog.conf man page .

    
por 23.11.2015 / 22:06