terça-feira, 14 de junho de 2011

Alterando formato de Logs do Squid

Ultimamente só utilizo o access.log do Squid para verificar algo em tempo real (se algum bloqueio foi feito ou liberado, vendo porque algum site não acessa), isso quando não faço uso do SQStat. Mas há quem goste de verificar a data e horário no próprio log do squid ou guardar para futuras consultas (apesar de existir o Sarg que também gera um relatório).


Aqui está uma forma de alterar o log do squid para que mostre a data em forma "humana" e não da forma padrão do squid chamada Unix Time que é a quantidade de segundos desde 01/01/1970. A variável do squid.conf chama-se logformat e tem a seguinte sintaxe:

logformat nome_da_variavel formato

Um exemplo abaixo:

logformat teste IP: %>a - Horario: [%tl] - URL: %ru - Status: %Ss

Criei um logformat com o nome teste e coloquei os campos IP, horário, URL e o que o Squid fez (bloqueou, liberou, acessou do cache, etc). Após isso tenho que informar na variável access_log qual o arquivo que será o log e como será o formato. Exemplo:

access_log /dados/squid/arquivodelog.log teste

Quando der um tail ou cat no arquivo, ele aparecerá da seguinte forma:

IP: 31.7.60.18 - Horario: [14/Jun/2011:08:08:29 -0300] - URL:  http://www.yahoo.com/bin/hostname - Status: TCP_DENIED

Uma lista dos códigos pode ser vista na documentação do squid, disponível em: http://wiki.squid-cache.org/Features/CustomErrors