Como redirecionar as mensagens do kernel que possuem a substring id exclusiva em um arquivo de log separado (usando 'rsyslog')?

6

Estou usando o recurso de registro iptables para depurar minha atividade de rede. Eu uso um determinado prefixo com o parâmetro --log-prefix para identificar exclusivamente mensagens no log do kernel pertencentes à iptables output, por exemplo ::IPT::LOG:: .

Como posso configurar o rsyslog para redirecionar as mensagens marcadas dessa maneira para um arquivo de log separado? A página man do rsyslog parece muito enigmática para mim.

    
por mbaitoff 04.07.2011 / 19:01

2 respostas

7

Além da filtragem baseada em seletores, o rsyslogd pode filtrar os padrões encontrados nas propriedades da mensagem de log. Para realizar o que você está tentando fazer, você pode criar um filtro baseado em propriedade para corresponder à string que você está usando em suas regras do iptables. Se você usasse --log-prefix "unique_prefix: " em sua regra do iptables, você precisaria adicionar isto ao rsyslog.conf:

:msg,startswith,"unique_prefix" /var/log/iptables

Esta regra testará as mensagens de log do seu prefixo e as enviará para / var / log / iptables (além de onde quer que o rsyslog esteja configurado para enviá-las). Se você precisar que as mensagens apareçam em / var / log / iptables, mas não em outro lugar, coloque a nova regra acima de outras e siga-a com uma linha contendo & ~ . Exemplo completo:

:msg,startswith,"unique_prefix" /var/log/iptables
& ~
#
# The rest of my rules appear below
# ...
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

As regras do Rsyslog podem ter várias ações. Ações subseqüentes são definidas em novas linhas que começam com um e comercial ( & ). No exemplo acima, a primeira regra tem duas ações: enviar a saída para / var / log / iptables e, em seguida, descartar a mensagem ( ~ ). Consulte documentos do rsyslog sobre ações e filtros para mais informações sobre as regras nesta resposta

Editado para usar startswith em vez de contains para considerações de desempenho. Já que o iptables --log-prefix é de fato um prefixo, e assim será no início da mensagem.

    
por 04.07.2011 / 20:17
1

Minha experiência, dada a natureza de como o arquivo rsyslog.conf é analisado, as linhas de configuração adicionais em /etc/rsyslog.conf devem ser antes de todas as outras linhas de configuração. Se adicionado ao final do arquivo, o log de tabelas ip ainda será anexado ao /var/log/messages e também redirecionado para o arquivo /var/log/iptables.log .

    
por 14.12.2011 / 20:02