O Sarg (Squid Analysis Report Generator) é um dos mais populares e eficientes geradores de relatórios de acesso à Internet para Proxy Squid. Esse artigo tem por finalidade mostrar um "passo-a-passo" de como configurar o Sarg de forma rápida e totalmente funcional e ainda fazendo como que ele gere relatórios com nomes amigáveis (nome do usuário/máquina) ao invés do endereço IP.
Criaremos agora o script que irá orientar ao Sarg sobre o total de dias que se deseja apresentar nos relatórios. Crie um arquivo dentro do diretório /etc/squid, denominado 'sarg.sh':
# touch sarg.sh
Dê permissão total:
# chmod 777 sarg.sh
Para GERAR RELATÓRIOS DIARIAMENTE, insira o conteúdo abaixo no arquivo recém-criado (/etc/squid/sarg.sh):
#!/bin/bash
INICIO=$(date --date "0 days ago" +%d/%m/%Y)
FIM=$(date --date "0 day ago " +%d/%m/%Y)
sarg -f /etc/squid/sarg.conf -d $INICIO-$FIM -p -x -z
12. Para GERAR RELATÓRIOS SEMANALMENTE:
#!/bin/bash
INICIO=$(date --date "7 days ago" +%d/%m/%Y)
FIM=$(date --date "0 day ago " +%d/%m/%Y)
sarg -f /etc/squid/sarg.conf -d $INICIO-$FIM -p -x -z
13. Para GERAR RELATÓRIOS MENSALMENTE:
#!/bin/bash
INICIO=$(date --date "31 days ago" +%d/%m/%Y)
FIM=$(date --date "0 day ago " +%d/%m/%Y)
sarg -f /etc/squid/sarg.conf -d $INICIO-$FIM -p -x -z
A partir desse momento, o Sarg estará quase pronto para gerar relatórios de acesso bem compreensíveis. O último passo será realizar o agendamento para que se realize tudo de forma automatiza. Para isso logicamente utilizaremos o crontab:
# mcedit /etc/crontab
Vamos às regras de agendamento. Primeiro para SARG GERANDO RELATÓRIOS DIÁRIOS:
00 00 * * * root /etc/squid/sarg.sh
O Sarg entrará em funcionamento à meia-noite do todos os dias.
Para SARG GERANDO RELATÓRIOS SEMANAIS:
00 00 * * 5 root /etc/squid/sarg.sh
O Sarg entrará em funcionamento à meia-noite de sexta-feira.
Altere o último número para modificar o dia conforme necessário (0-Domingo, 1-Segunda e assim por diante).
Para SARG GERANDO RELATÓRIOS MENSAIS (Agende conforme o mês em que se encontra):
00 00 31 * * root /etc/squid/sarg.sh
O Sarg entrará em funcionamento à meia-noite do dia 31 de cada mês.
00 00 30 * * root /etc/squid/sarg.sh
O Sarg entrará em funcionamento à meia-noite do dia 30 de cada mês.
00 00 29 * * root /etc/squid/sarg.sh
O Sarg entrará em funcionamento à meia-noite do dia 29 de cada mês (para mês de Fevereiro).
00 00 28 * * root /etc/squid/sarg.sh
O Sarg entrará em funcionamento à meia-noite do dia 28 de cada mês (para mês de Fevereiro com 28 dias).
Pronto, o Sarg estará com sua configuração completa e pronto para funcionar. Mas ATENÇÃO, se não estivermos utilizando Proxy Autenticado, apesar dos nomes dos Usuários da Rede poderem aparecer nos Relatórios, não significa dizer que os acessos foram realizados pelos mesmos.
Ex: Linus usuário da máquina 192.168.0.2 saiu pra tomar café e deixou sua sala vazia, nesse momento, Torvalds que é usuário da 192.168.0.3 utiliza o computador do colega para acessar http://paparazzo.globo.com.
Ou seja, a intenção é apenas tornar mais amigável os relatórios e facilitar a interpretação.
Bom pessoal, é isso aí. Espero que esse Artigo possa ajudá-los. Até a próxima.
[1] Comentário enviado por cvs em 07/06/2006 - 08:39h
Legal o artigo... vou utilizar, mas vamos ver o seguinte cenario... Uma rede com mais de 50 computadores e funcionando com dhcp, nada de ip fixo, como fazer ele aparecer o nome das maquinas?
[4] Comentário enviado por Junior Menezes em 07/06/2006 - 10:28h
Caros...
Eu realmente nunca tive oportunidade (ou sequer precisei) utilizar Sarg em redes com DHCP, eu teria que testar e ver uma forma que funcionasse tão bem como funciona com IP Fixo... Assim que eu tiver um tempo, tentarei efetuar testes... No entanto, peço para que se alguém conseguir antes de mim, faça um Post, ou até mesmo um Artigo e disponibilize aqui no VOL e no www.aplinux.com.br para que toda Comunidade Linux possa utilizar em seus projetos... Abraços a todos...
[6] Comentário enviado por agk em 07/06/2006 - 13:45h
A idéia é boa, pois torna mais prática a busca dos relatórios, mas convenhamos que em uma rede pequena isso não é necessário e em uma rede com 250 computadores é inviável trabalhar sem dhcp.
Trabalhando com DDNS +DHCP seria uma forma de resolver a situação.
Gostei do conf do sarg, bem explicado.
Faltou dizer qual a versão dos programas (sarg/squid) que você usou, eu utilizo o sarg 1.4 e não conhecimento dessa função de gerar gráficos.
[ ]'s.
[7] Comentário enviado por econt_linux em 07/06/2006 - 16:32h
Ola pessoal!
Ai camarada.. ótimo artigo...
Pra galera que falou em usar DHCP, eu vi um artigo aqui mesmo no VOL sobre o IDENT, ele faz com que o Squid grave no seu log o nome do Usuário do Samba que acessou a página. Só tem um problema, me parece que não tem como usar proxy transparente nesse caso.
Se alguem souber uma forma de usar proxy transparente e gravando o usuario do samba por favor manda pra gente porque vai ser muito útil mesmo.
[12] Comentário enviado por marioneri em 19/10/2006 - 17:49h
Alguem sabe como fazer para mudar o lugar aonde são salvos os LOGS? Aguardo respostas em mario.neri@gmail.com.
Ótimo tópico, bem explicado e fácil pra quem ainda não domina com excelência o linux! Um abraço e parabéns!
[15] Comentário enviado por thiagodalsoto em 27/06/2007 - 15:08h
Ai vai uma dica, que tambem funciona do mesmo modo que criar o arquivo com o nome dos usuarios, como nosso amigo falou.
Mas desse modo ja usa o proprio arquivo do linux fica ate melhor quando vc pinga um host pelo nome pelo linux ele pinga pois vai resolver o dns local por esse arquivo.
Edit o arquivo /etc/hosts e coloque da mesma forma
192.168.1.1 pinguim
192.168.1.2 doidao
E nao precisa indicar mais nda para o sarg ele vai resolver os nomes por esse aquivo sozinho basta colocar a linha no sarg
resolve_ip yes
Ta ai mais um modo.. eu uso assim..
O melhor mesmo é usar o squid autenticando no samba.. ai sim.. fica legal. Mas isso apenas para quem utiliza proxy autenticado.
[17] Comentário enviado por thiagodalsoto em 28/11/2007 - 15:16h
Pessoal ando usando o mysar, quase ninguem o utiliza pois n é mto conhecido... mas deixei de usar o sarg para utilizar ele.. ele armazena tudo em banco mysql e os relatorios sao em tempo real.... procurer material sobre o mysar.
[18] Comentário enviado por o_krah em 24/01/2008 - 20:53h
aew mano... nao consigo ver os relatorios do sarg de outro pc... quando gero no servidor e vejo nele mesmo clico em daily e aparece tudo bunitinho ja qndo vou ver de outro pc da rede ao clicar em daily nao aparece nenhum log....
[19] Comentário enviado por welington.santos em 31/01/2008 - 15:29h
Tem como gerar relatório com o IP e o nome do usuário ao mesmo tempo, pois controlo um laboratório de informática e cada usuário tem uma senha, então queria controlar o que eles estão baixando e adverti-los sobre a ocorrência. Este script que você fez só mostra o IP.
[20] Comentário enviado por dfabretti em 27/03/2008 - 15:17h
Pra mim aqui na empresa, eu crieu um arquivo chamado ips_nomes onde dentro do arquivo eu coloco o respectivo ip e o usuário que o utiliza...
Recomendo somente para empresas que não possuem uma política de vai-e-vem de funcionários, senão dá um trabalho :|, hehehe! Pra resolver essa situação, teria que ativar no squid a autenticação, aí o sarg se baseia no usuário autenticado e não no ip. Abraços
[21] Comentário enviado por carbonari em 23/07/2008 - 10:54h
Bom dia a todos,
Possuo o sarg instalado em uma maquina gerando os relatorios todos conforme esperado, porém tenho a seguinte duvida:
Agendei no cron para que diariamente seja criado um relatorio de acesso, eu gostaria tambem que fosse gerado um relatorio
mensal juntamente com o grafico mensal porém se gero os relatorios diarios não consigo gerar os mensais uma vez que os relatorios
diarios ja utilizaram-se do arquivo access.log do squid. A duvida é se existe algum meio para gerar esses relatorios diarios e ao final
do mes um relatorio geral...
[26] Comentário enviado por mrjeday em 28/03/2011 - 09:24h
Bom estava lendo este artigo e vi muitos outros semelhantes aqui no VOL e sempre a mesma pergunta: "COMO GERAR RELATÓRIOS DE MÁQUINAS COM NOMES A PARTIR DE DHCP DINÂMICO?" Aí resolvi pesquisar.
Pra começar só tenho uma crítica a fazer ao artigo acima, informar a versão dos programas utilizados.
[27] Comentário enviado por blaiser em 11/12/2011 - 22:55h
Caro amigos, boa noite.
Olha o meu caso é um tanto quanto complicado, mas me ajudem.
Meu gerente necessita acompanhar esse relatorio diario... até ai tudo bem.
Depois de todas essas regras criadas eu adicionei o atalho para acessar: http://10.0.0.1/squid-reports
e o relatorio gerado vem com uns bugs.
1o. nao mostra o nome dos hosts, vem o ip.
2o. quando eu vou no webmin na guia de servidores de relatorios ele aparece lá bonitinho com os nomes e ai?
[29] Comentário enviado por meetgyn em 26/08/2013 - 15:03h
Um exemplo:
Tenho quase 300 maquinas em minha rede, e preciso tirar relatorios com o sarg pelo nome das maquinas. Como farei isso sem ter que pegar o nome de todas as estações e colocar no arquivo sarg.usertab?
Tenho um proxy transparente rodando + servidor de DHCP + BIND9 + FIREWALL rodando no centOS 6. JA revirei meio mundo e nao consegui resolver esta questão. Se alguem ai dos amigos souber de uma solução ficarei muito agradecido.
[30] Comentário enviado por tiaguera em 21/12/2013 - 16:29h
Ótimo tutorial. Parabéns! Ai vai minha contribuição: atualmente estou fazendo o seguinte:
Em redes cabeadas estou usando IPs fixos (sem DHCP) com o squid usando autenticação via freeradius (então é desnecessário esta dica aqui).
Já em redes wireless (também pode-se usar isso em redes cabeadas) eu uso DHCP com prisão de MAC e os usuários eu autêntico também via freeradius com 802.1x PEAP e uso squid transparente... então uso a dica apresentada aqui e no sarg meia volta aparece um endereço IP novo não atribuído a um usuário... então vejo qual o MAC desse IP novo e no log do freeradius vejo qual é o usuário em questão para o colocar na lista do sarg.
Agora to tentando construir um script para automatizar o processo... o problema é que estou usando um servidor de dhcp proprietário ainda...