Suponho que você já tenha o Squid em produção e gravando log de acesso. Não vou abordar a instalação e configuração do Squid nesse tutorial, mas prometo um outro com todas as configurações de Squid que uso atualmente.
Primeiramente vamos atualizar a lista de fontes do Ubuntu Linux:
# apt-get update
Este comando atualiza apenas a lista de fontes de download, não atualiza o sistema.
Instalando o SARG:
# apt-get install sarg
Após a instalação, acesse o diretório /etc/squid/.
Nesse diretório encontramos além do arquivo de configuração do Squid os arquivos de configuração do SARG.
Para começar edite o arquivo sarg.conf com o seu editor preferido (o meu é mcedit):
# mcedit /etc/squid/sarg.conf
Vamos atentar apenas as linhas abaixo:
# Idioma do SARG
language Portuguese
# Diretório onde encontra-se o log do SQUID
access_log /var/log/squid/access.log
# Título da página dos logs do SARG
title "Relatórios de acessos a Internet"
# Pasta onde o SARG vai salvar os logs em html
output_dir /var/www/squid-reports
# Arquivo contendo os IPs ignorados pelo SARG
exclude_users /etc/squid/sarg.users
# Arquivo onde relacionamos os IPs aos seus respectivos usuários. Assim o SARG exibe o seu nome do relatório
usertab /etc/squid/sarg.usertab
As demais configurações do arquivo eu deixo como padrão.
No arquivo sarg.users:
# mcedit /etc/squid/sarg.users
Adicione os IPs que você não quer que o SARG analise os LOGs. Um abaixo do outro.
No arquivo sarg.usertab:
# mcedit /etc/squid/sarg.usertab
Adicione os IPs e os nomes dos usuários para serem exibidos nos relatórios do SARG:
192.168.0.14 Gilson
192.168.0.16 Maria
Pronto, agora precisamos apenas digitar o comando "sarg" no shell para ele gerar os relatórios na pasta indicada pelo arquivo sarg.conf.
Para acessar os logs via web acesse o endereço:
http://ip-do-servidor/squid-reports
Para incrementar mais ainda você pode adicionar uma senha nessa pasta usando as configurações do Apache (mostrarei em outro texto) e ainda adicionar uma entrada no CRON para automatizar o comando "sarg" que gera os relatórios.
[2] Comentário enviado por andersontm em 18/12/2009 - 10:45h
Não esquecendo que quem ainda não tem o apache instalado é preciso instalá-lo com o comando:
# apt-get install apache2
Eu além disso sigo algumas dicas do livro do Morimoto, que são:
___________________________
Automatizando com o Cron!
Trexo retirado do livro "Servidores Linux - Guia Prático", do Morimoto;
"Para automatizar esta tarefa, você pode usar o cron para que ele seja executado automaticamente todos os dias ou uma vez por hora, por exemplo. No Debian (e na maioria das outras distribuições) é criado automaticamente um script dentro da pasta "/etc/cron.daily/", que faz com que ele seja executado todos os dias às 6:25 da manhã.
Dentro da mesma pasta, você encontrará um script que executa o logrotate, o serviço do sistema responsável por rotacionar os logs, evitando que eles cresçam até ocupar todo o espaço disponível no HD do servidor. Todos os dias, o logrotate renomeia e compacta os arquivos de log, incluindo o log do Squid, fazendo com que o log do dia anterior receba a extensão ".1" e os logs seguintes as extensões ".2.gz", ".3.gz" e assim por diante. Com isso, a pasta "/var/log/squid" conterá uma seqüência de arquivos (access.log, access.log.1, access.log.2.gz, access.log.3.gz e assim por diante).
No caso do Debian, o logrotate é corretamente configurado para executar o Sarg antes de rotacionar os logs, de forma que ele não deixe de contabilizar os acessos. Caso tenha problemas em outras distribuições, experimente renomear o arquivo "/etc/cron.daily/sarg" para "/etc/cron.daily/ksarg", de forma que ele seja executado imediatamente antes do "/etc/cron.daily/logrotate". "
___________________________
Fiz isso usando o Ubuntu Server 9.04, assim ele gera automaticamente os html's do Sarg, Diario, Semanal e Mensal!
Outra mudança que fiz, foi mover o "/etc/cron.daily/logrotate" para a pasta "/etc/cron.montly/logrotate" assim ele rotaciona os logs mensalmente e não atrapalha o Sarg, o comando para isso seria;
# mv /etc/cron.daily/logrotate /etc/cron.montly/
Pronto, assim nem precisa criar regras no Cron ele já usa as criadas pelo próprio Sarg!
[3] Comentário enviado por andersontm em 18/12/2009 - 10:51h
Esqueci de colocar no comentário acima, que depois que eu movo o logrotate para a pasta "/etc/cron.montly/" eu renomeio o sarg da mesma pasta para ksarg como o trecho do livro indica, a diferença é que eu altero o da pasta montly e não o da daily!
[4] Comentário enviado por gilsonbp em 18/12/2009 - 11:10h
Bom dia!
Para adicionar uma entrada no cron agendando o sarg eu uso o seguinte comando:
# lista as tarefas agendadas
crontab -l
Ex:# m h dom mon dow command
40 * * * * sarg
00 23 * * * /root/scripts/backup_etc start
Minutos: informe números de 0 a 59;
Horas: informe números de 0 a 23;
Dias do mês: informe números de 0 a 31;
Mês: informe números de 1 a 12;
Dias da semana: informe números de 0 a 7;
Usuário: é o usuário que vai executar o comando (não é necessário especificá-lo se o arquivo do próprio usuário for usado);
Comando: a tarefa que deve ser executada.
# Edita as tarefas agendadas e adiciona mais tarefas
crontab -e
Abre o editor "vi" com as tarefas agendadas voc~e tecla Enter no final e adiciona mais uma com "*" nos campo qua você quer generalizar.
Veja no exemplo acima que agendei o sarg de hora em hora no minuto 40.
[5] Comentário enviado por thiaguin em 18/07/2012 - 11:25h
Olá pessoal!
Eu gostaria de gerar os relatórios do sarg com somente os endereços dos browsers, não queria que aparecesse no relatório todas as sub-paginas. Eu entrego os relatórios para a diretoria da empresa, mais o relatorio fica confuso de entender com tanta sub-pagina que existe em cada url acessada.