Tente isso (funciona para mim):
Defina o LogFormat no seu httpd.conf
as
LogFormat "%h %t [%V] \"%r\" %>s \"%{Referer}i\""
Com este caso em particular, você terá remote_address, data / hora, [O nome do servidor de acordo com a configuração UseCanonicalName] , solicitação, código satus e Referer (esse é o meu formato desejado) e depois coloque
$LogFormat "%h %t %V \"%r\" %>s \"%{Referer}i\""
em seus serviços / arquivo do LogWatch http.conf. Isso vai
- faz o apache colocar o nome do host (canônico ou não, depende se você usa% v ou% v)
- force o LogWatch a entender seu log do Apache Access
Aqui está um exemplo da linha na saída de log com este conjunto específico de diretivas:
172.3.20.11 [01/Jun/2011:21:00:52 +0200] joomla.local "GET /images/tabs_back.png HTTP/1.1" 404 "http://joomla.local/templates/beez_20/css/personal.css"
Se nos concentrarmos em códigos de erro, e como eles são tratados no LogWatch, aqui estão algumas alterações que você pode fazer para / usr / share / logwatch / scripts / services / http : Adicione:
my $my_host = ""; my $my_url = "";
Depois, sobre a linha 462, adicione esta linha para salvar nossa quarta coluna (HOST):
$field{my_host} = $field{$log_fields[3]};
E na linha 560, depois que fmt_url
é encurtar ( if (length($field{url}) > 60) {...}
) adicione:
$my_host = $field{$log_fields[3]};
$my_host = substr($my_host,1);
$my_url=$my_host . $fmt_url;
Por fim, altere:
$needs_exam{$field{http_rc}}{$fmt_url}++;
por
$needs_exam{$field{http_rc}}{$my_url}++;
Fazendo isso, você terá isso no seu Logwatch:
Requests with error response codes
404 Not Found
joomla.local/images/tabs_back.png: 3 Time(s)
Espero que ajude você a sair