Filed Under (Apache, Dica, software livre) by rafaelgomes on 28-09-2009
Para quem tem um servidor de log, como o syslog-ng, já deve ter percebido que o log de acesso do serviço apache não usa syslog, ou seja, ele não é enviado por padrão para o servidor de log, mas como quase tudo na informática tem seu “jeito”. Segue abaixo um forma interessante pra resolver esse problema.
Primeiro será necessário criar um arquivo binário executável com o seguinte conteúdo:
#!/usr/bin/perl
use Sys::Syslog qw(EFAULT setlogsock );
setlogsock(‘unix’);
openlog(‘apache’, ‘cons’, ‘pid’, ‘local1′);while ($log = <STDIN>) {
syslog(‘notice’, $log);
}
closelog
Verifique se no seu arquivo syslog a segunte linha está configurada:
local2.* @ip do servidor de log
Agora vamos a configuração do apache:
CustomLog |/caminho/do/seu/binario combined
Atente que o | é necessário, já que será feito o pipe do comando de log.
Pronto, reinicie o serviço do apache e seu log estará sendo enviado para o servidor de log tranquilamente.

