Como redirecionar logs para um dispositivo fifo?

1

Eu tenho a seguinte linha no arquivo de configuração do rsyslog:

*.*;auth,daemon,kern,user   -/dev/logi

e ele faz o que deveria, mas eu queria enviar alguns logs do iptables para um arquivo diferente, então adicionei o seguinte conteúdo ao arquivo rsyslog.conf:

:msg,contains,"IPTABLES:" /var/log/iptables
& stop

e criei o dispositivo / dev / fw, mas não tenho idéia de como enviar novo conteúdo do arquivo para esse dispositivo. Existe uma maneira de fazer isso?

    
por Mikhail Morfikov 06.06.2014 / 19:00

1 resposta

0

Eu finalmente encontrei uma solução.

Este é o dispositivo fifo que eu crio quando o sistema é inicializado:

LOG_DEV=/dev/logi
if [ ! -r $LOG_DEV ]; then
    mkfifo $LOG_DEV
    chmod 640 $LOG_DEV
    chown root:morfik $LOG_DEV
fi

Acabei de adicionar isso ao arquivo /etc/init.d/rsyslog .

Tendo esse dispositivo, posso enviar todos os registros, colocando a seguinte linha no arquivo /etc/rsyslog.conf :

*.*                 -/dev/logi

É a primeira linha na seção de regras, então cada log vai até lá e continua processando outras regras no arquivo de configuração. A próxima regra nesse arquivo é:

:msg,contains,"IPTABLES:" /var/log/iptables
& stop

O qual envia os logs do iptables para um arquivo específico, e depois disso, o rsyslog simplesmente pára de processar as entradas que contêm IPTABLES: frase. As próximas regras são apenas regras normais no arquivo de configuração do rsyslog.

Então eu consegui o que eu queria - todos os logs são enviados para o dispositivo fifo + um arquivo de log separado para entradas do iptables.

    
por 11.10.2014 / 18:03