Estabeleci uma configuração onde as mensagens são classificadas e gravadas nos arquivos (destinos) correspondentes. Estou pensando - é possível registrar em um arquivo mensagens que não são capturadas por filtros específicos?
Por exemplo, existem filtros para mensagens dhcpd
, dhclient
, acpid
, . sshd
E o que eu quero é pegar as mensagens que não se enquadram nas 4 categorias acima.
Vejo que tags
estão disponíveis como uma estrutura interna por mensagem. Eu tentei definir uma marca para cada categoria e pegar untagged assim:
rewrite r_set_routed { set-tag('routed'); };
filter f_untagged { not tags('routed'); };
filter f_dhcpd_program { program('dhcpd'); };
<...>
log { source(s_local); rewrite(r_set_routed); filter(f_dhcpd_program); destination(d_dhcpd_file); };
<...>
log { source(s_local); filter(f_untagged); destination(d_unfiltered_file); };
Mas isso não está funcionando (parece que r_set_routed
reescrever em um log {}
não afeta o outro log {}
). Eu sei que é possível negar todos os filtros para produzir um filtro que não corresponda a tudo acima, mas essa é uma maneira suja e propensa a erros que desejo evitar.
use a opção 'flags(final)' em seus caminhos de log que possuem filtros e o caminho de log para as mensagens não marcadas no final. Este último caminho de log não precisará de filtros ou sinalizadores. Para obter detalhes, consulte https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/reference-logflags.html