Gerando relatórios do Squid com o SARG
Hugo Cisneiros, hugo_arroba_devin_ponto_com_ponto_br O SARG (Squid Analysis Report Generator) é uma ferramenta muito boa desenvolvida por um brasileiro que permite à você ver para "onde" seus usuários estão indo na Internet através da análise do arquivo de log "access.log" do famoso proxy Squid. O poder da ferramenta é incrível, ele pode dizer para você quais usuários acessaram quais sites, em que horas, quantos bytes foram baixados, quantas conexões foram feitas, relatórios de sites mais acessados, usuários que mais acessam, relatório de sites negados, falha de autenticação, entre outros. A gerência que você pode obter com isso é muito boa, principalmente para as empresas que querem economizar o uso da Internet. Vamos aqui instalar e configurar o SARG para ele gerar relatórios diários de acesso do Squid. Para isso precisaremos de um Squid já configurado e rodando (o que não vou cobrir neste tutorial em si), que gere os logs de acesso no arquivo access.log. Se você desconhece isso, vá ao arquivo de configuração do Squid e veja se existe a linha abaixo. Se não existir, adicione:
Geralmente o arquivo de configuração do Squid está em "/etc/squid/squid.conf". A linha acima especifica que o arquivo de log deverá estar em "/var/log/squid/access.log", lembre-se disso para posteriormente informarmos ao SARG. Se você teve que adicionar essa linha no Squid, reinicie-o (ou de um 'reload' no serviço) para que as mudanças sejam efetivadas. Agora vamos ao que interessa. Você precisará baixar o SARG através do endereço:
No caso deste tutorial, peguei o codigo-fonte da versão 1.2.2. Você poderá notar também que há links para pacotes pré-compilados, e caso você tenha uma distribuição suportada, você pode pegar os pacotes e instalar através do gerenciador de pacotes. Mas como peguei o código-fonte, vamos compilar o programa:
Fiz o procedimento como root porque quis, na verdade o root só é requerido no passo "make install", porque ele instala o programa "sarg" no /usr/bin e o diretório de configuração em "/etc/sarg". Isso tudo pode ser escolhido através do comando "./configure", e para você saber de suas opções, digite "./configure --help". Agora que o programa foi compilado e instalado, precisaremos configurar para ele rodar. Escolhemos na compilação o diretório /etc/sarg para armazenar os arquivos de configuração, então vamos agora trabalhar nele.
Veja quais os arquivos padrões que ele cria. Como nossa instalação vai ser um pouco mais complexa, teremos de criar alguns arquivos mais, e organizar os já existentes:
Uma breve explicação sobre os arquivos que criamos:
Agora vamos ter que criar um arquivo de configuração para o SARG. Como eu disse anteriormente, este arquivo de configuração será para um relatório diário. Colocaremos essa configuração no arquivo "/etc/sarg/sarg-dia.conf". Abaixo segue um arquivo de configuração comentado, para posterior análise:
O arquivo de configuração em si já explica as configurações para você alterar. Mas também há mais opções disponíveis no programa, você pode ver explicações sobre estas novas configurações no arquivo padrão de configuração, que deixamos como "/etc/sarg/default.conf". Sobre a língua utilizada, eu verifiquei um erro que aconteceu comigo, então fiz uma solução simples e rápida pra isso. O que acontece é que mesmo mudando a variável language, o programa fica gerando relatórios em Inglês. Se acontecer isso com você, faça o seguinte:
O que fiz aqui foi fazer um link simbólico do English para o Portuguese, para que o programa pegue o conteúdo do arquivo Portuguese e não do English original. Repare que eu também fiz um backup do arquivo English, e lembre-se sempre disso: faça sempre backups! Tente nunca apagar algo. Existe também outro erro em relação à isto, só que este é mais sério. O arquivo de tradução "Portuguese" está incompleto, e por isso ele não gera os links para os relatórios de falhas de autenticação e de sites mais acessados. Para consertar isso, edite o arquivo "/etc/sarg/languages/Portuguese" e adicione as seguintes linhas no final do arquivo:
Assim a tradução não irá faltar, e os links estarão bonitinhos no lugar :) Mas agora falta rodar o programa para gerar o nosso relatório! Vamos supor que hoje seja o dia 05/02/2003 (epa, essa é a data em que estou escrevendo isso :P) e você queira gerar o que até agora acessaram no seu proxy. Execute isto:
E espere... Dependendo da quantidade de acessos ao seu proxy, e o tamanho do arquivo de log, o processo poderá demorar. Quando terminar, acesse o diretório que você configurou o "output" no seu servidor Web para ver o relatório na íntegra. Mas e agora, teremos que ficar rodando este comando todo dia pra ficar gerando? Não! :P Para isso que serve o crontab, vamos configurá-lo para rodar este comando todo dia às 01:01 da manhã. Nota: Várias distribuições já vem com um crontab diário configurado. Ou seja, todos os arquivos executáveis que estiverem dentro do diretório "/etc/cron.daily" serão executados em um certo horário (geralmente 4 da manhã de todo dia). Se sua distribuição tiver este diretório, crie o arquivo "/etc/cron.daily/sarg-dia". Caso ela não tenha, crie um arquivo chamado "/usr/local/bin/sarg-dia". Coloque o seguinte conteúdo em um desses arquivos:
Se o seu caso foi de criar o arquivo "/usr/local/bin/sarg-dia", então você terá que configurar também o crontab para rodar este programa às 01:01 da manhã como dissemos. Adicione a seguinte linha no arquivo "/etc/crontab":
E não se esqueça de dar permissão de executável para o script que criamos:
Pronto. Com isso o crontab irá rodar o nosso script todo dia de madrugada. Para quem não entendeu o script, ele primeiro pega a data de 1 dia antes e coloca no formato DIA/MES/ANO, como queríamos para passar pro SARG, então ele chama e gera o relatório do dia anterior... Legal não? Para cada dia, o SARG gera um diretório diferente, especificado por data. Experimente gerar os relatórios e verificar no diretório de saída (output), vai aparecer algo como:
Pronto! Você já pode ser um usuário feliz deste excelente gerador de relatórios :) Se você entendeu direitinho este tutorial, verá que é fácil fazer também relatórios semanais e mensais através dos scripts e crontab. Mas aí vai de exercício pra você. Aviso: Os relatórios geram muitas páginas, e dependendo do relatório, pode gastar muito e muito espaço em disco, então tome cuidado. Por exemplo, aqui o dia 03 de Fevereiro deu 103MB de relatório. Mas ao compactar este diretório para .tar.bz2, consegui reduzir para 1.2MB :) Faça os relatórios, compacte-os, vá juntando e gravando em um CD, assim você poderá ter um histórico completo de quem acessou o que durante uma certa época. Boa sorte! |