iBlog . . .

1Nov/070

Filtrando logs com o syslog-ng

O syslog-ng é um sistema de logs de extrema facilidade de configuração e possui grandes recursos. Com ele é possível montar um servidor de logs sem maiores complicações.

Para instalar basta executar: apt-get install syslog-ng (caso você possua o apt, claro :P ), depois de instalado já estará "escutando" o /dev/log. Para que possa também capturar logs via rede, enviados de outras máquinas, é necessário adicionar mais um source além do local. Em /etc/syslog-ng/syslog.conf adicione:

source net { unix-stream("/dev/log"); udp(ip(0.0.0.0) port(514)); };

Nesta linha estamos adicionando o source net que recebe os logs via rede.

Configurando um filtro:

filter filtro_servidor_1 {
host("192.168.1.20");
};

Note que o IP do servidor pode ser alterado para o host, basta que o adicione em /etc/hosts.

Configurando um destino:

destination destino_servidor_1 {
file("/var/logserver/maillog.log" create_dirs(yes) );
};

Temos agora os passos para capturar um log e guardá-lo em um arquivo, então vamos ao último passo:

log {
source(net);
filter(filtro_servidor_1);
destination(destino_servidor_1);
};

Estes são os passos mais importantes, configurar a origem (source), destino (destination) e o filtro (filter).

No filtro pode-se utilizar de algumas funções como:

facility() - Ex. facility(mail);

level() - Ex. level(notice);

program() - Ex. program("^postfix");

etc...

Segue um link com bons exemplos: http://linux.cudeso.be/linuxdoc/syslog-ng.php