Problema Raiz
Com a crescente melhora nos links de comunicação e com o aumento dos serviços on-line de comunicação, P2P, Redes Sociais, Webmail, etc…, precisei aumentar o controle para melhorar o uso dos recursos de telecomunicação disponibilizados pela organização para execução dos trabalhos.
Fizemos campanhas de conscientização sobre o uso da internet, nada adiantou o que me deixou com um problema muito grande a ser resolvido da melhor maneira possível (para a empresa é claro).
Procurando por soluções para armazenamento de LOG e controle de acesso a internet, verifiquei que a dupla SQUID+SARG dariam conta do recado de maneira eficiente. Abaixo uma breve descrição do ambiente onde está funcionando harmoniosamente (ou quase) essa solução.
Ambiente
2-Servidores
2-Links de 1.2 Mbps
No meu caso utilizei a distribuição Debian Etch 4.0, com todas as atualizações de segurança e com os seguintes serviços habilitados.
- KDE
- SQUID
- IPTABLES
- ETHERAPE
Tenho, além disso, um servidor Windows 2003 SP2 rodando DHCP, IIS, TS, Servidor de Impressão e Arquivos, DNS e AD.
Claro que o cenário não é o mais recomendado para a configuração de todos os serviços descritos, mas é isso que tenho de recurso.
Objetivo
Criar LOG de acesso a sites da internet, como já estava utilizando o SQUID como proxy, verifiquei quais as opções. Entre elas encontrei o SARG, falando com amigos e depois fazendo cursos, resolvi colocar o SARG pra funcionar, de que forma:
- Criar LOG de tudo que foi acessado por DIA / SEMANA / MÊS
- Criar ranking dos sites mais acessados
- Usuários que mais acessaram
Apenas com a habilitação do SARG já se consegue saber qual o volume trafegado por usuário em que período e também em qual site, isso já me bastaria se eu não precisasse com frequência bloquear usuários, devido acesso a sites inapropriados.
Para que seja possível criar os dados por DIA / SEMANA / MÊS, você deve ter umas 1.000 opções, então não vou dizer faça igual pois caso seu ambiente seja diferente é possível que com algumas adaptações seja mais pratico para alcançar seus objetivos.
Abaixo coloco como referencia todas as informações necessárias para estudo de como montar LOG´s com o SARG.
Primeiro:
Crie no seu Linux um diretório para armazenar os arquivos que serão gerados pelo SARG.
Crie dois arquivos para armazenar as informações do LOG semanal e mensal (para o diário não precisa), dentro do diretório criado anteriormente.
Crie três script´s com o nome que você achar melhor (Sugestão: SARG_DIARIO.sh , SARG_SEMANAL.sh, SARG_MENSAL.sh), eles serão responsáveis por gerar os relatórios do SARG sem que você precise ficar rodando comandos na mão.
Segundo:
Abaixo imagem com o conteúdo do script DIARIO.

Explicação: Todas as linhas que começam com # são comentários, a linha 4 “pega” o conteúdo do access.log gerado durante os acessos à internet e faz um “append ¹ “ no final do arquivo já existente SQUID_MENSAL.log , a linha 7 faz a mesma coisa que a 4 porém armazena os LOG´s de apenas uma semana.
Na linha 10 finalmente é gerado o relatório de acesso diário do SARG dentro do diretório /var/www/squid-reports/Daily/ quando acessar a tela de relatórios do SARG é possível solicitar se os relatórios serão apresentados por Dia / Semana / Mês.
Depois veremos como os arquivos SQUID_SEMANAL E SQUID_MENSAL são zerados ao final de cada período.
¹ Append: Termo usado para explicar quando o conteúdo será acrescentado a um arquivo já existente, sem apagar os dados já contidos no arquivo.
Abaixo imagem com o conteúdo do script SEMANAL.

Neste script é possível identificar na linha 2 os relatórios do SARG sendo gerados dentro do diretório /var/www/squid-reports/Weekly, depois de gerar os relatórios, executamos um comando para que o arquivo SQUID_Semanal.log volte a ser zerado, começando a armazenar os LOG´s da próxima semana.
Abaixo imagem com o conteúdo do script MENSAL.

Neste script é possível identificar na linha 2 os relatórios do SARG sendo gerados dentro do diretório /var/www/squid-reports/Montly, depois de gerar os relatórios, executamos um comando para que o arquivo SQUID_Mensal.log volte a ser zerado, começando a armazenar os LOG´s da próxima semana.
Terceiro:
Colocar agendamento do /etc/cron.tab
Colocarei aqui apenas as linhas referentes ao agendamento do SARG.

Resultado
Seguindo passo a passo o procedimento acima, acredito que não ocorram problemas e todos os relatórios poderão ser visualizados no próprio servidor Linux ou de outra máquina qualquer, até mesmo pela internet, mas não vou entrar nesse assunto agora, já que o foco desde post são apenas os Log´s do SARG.
Caso não tenha ficado claro alguma parte desse post, pode mandar mensagem para ricardo.nobregasantos@gmail.com
Obrigado pela visita !
Parabéns, esta funcionando perfeitamente. Muito obrigado pela dica.
abraços
Paulo Barretto
Comment por Paulo Barretto — 28 28UTC Agosto 28UTC 2009 @ 12:29 PM
Ainda bem que foi útil …
Qualquer dúvida, posta ai..
Comment por rnobrega — 28 28UTC Agosto 28UTC 2009 @ 3:58 PM