Colocando um syslog remoto em seu próprio arquivo

2

Eu tenho um roteador Tomato e ele tem a capacidade de enviar seus logs para um servidor externo. syslog é a escolha óbvia para isso. Então eu habilitei o log remoto no syslogd ( syslogd -r ) do meu servidor linux e eu posso ver todos os logs em /var/log/syslog . O que eu quero fazer é pegar tudo que vem do IP do meu roteador (10.0.0.1) e desviá-lo para o seu próprio arquivo como /var/log/tomato para evitar poluir meu syslog com logs externos.

Não consigo encontrar exemplos de alguém fazendo isso. Minha única solução é juntar um script que retire qualquer linha em /var/log/syslog com 10.0.0.1 e coloque a linha em /var/log/tomato e que o script seja executado como um cron job, mas isso parece desnecessariamente confuso.

Tem que haver uma maneira melhor.

Editar:

A menos que alguém saiba que existe uma solução, tenho 95% de certeza de que syslog não suporta isso depois de ler mais detalhadamente a página do manual. Por isso, preciso migrar para syslog-ng ou criar um script maluco que seja executado com o cron.

    
por Reti 11.08.2010 / 11:14

2 respostas

1

Estamos usando o syslog-ng no meu escritório e, na verdade, você pode segregar a saída do syslog com base em todos os tipos de critérios diferentes para diferentes arquivos de saída. No syslog-ng, você basicamente define as fontes, os critérios e o destino separadamente. Você então faz a regra que irá colar componentes diferentes juntos para fazer uma regra real ser executada pelo syslog-ng.

Para o que eu vejo, o syslog-ng parece ser o padrão padrão. Também estamos usando um leitor de syslog baseado em PHP que funciona pela web, usando o Apache. Você pode então ler esses syslogs, usando seus próprios critérios para revisar o conteúdo do log de uma forma que talvez seja mais fácil do que o famoso comando "tail -f". Isso é conhecido como PHPlogcon. Google o nome e você deve encontrá-lo facilmente.

    
por 11.08.2010 / 14:00
1

Use o iptables para desviar o tráfego do ip do seu roteador para alguma porta diferente no seu host linux.

Na outra porta (ou seja, 5514), execute outra instância do servidor syslog e escreva . no arquivo de sua escolha.

    
por 11.08.2010 / 15:25