Squid + SARG: Gerando relatórios pelo nome de usuário autenticado
O objetivo deste tutorial é configurar o SARG (Squid Analize Reports Generator), desenvolvido pelo brasileiro Pedro Orso, para gerar relatórios em português a cada 30 minutos, todos os dias e que forneça o nome dos usuários e ainda possa ser acessado de qualquer computador com navegador de internet.
Pré-requisitos:
Squid configurado e funcionando. Não vamos abordar a configuração do mesmo. Para que o SARG coloque no relatório o nome do usuário ao invés do ip, o Squid deve pedir autenticação (usuário e senha);
Servidor web Apache.
Configurando o SARG
Vamos começar instalando o SARG. Como root digite:
# apt-get update (atualiza a lista de pacotes) # apt-get install sarg (baixa o SARG e instala no computador)
Abra o arquivo /etc/squid/sarg.conf e localize a linha LANGUAGE, por padrão deve estar como English, troque para Portuguese. Esta linha define em que idioma será gerado o relatório.
Procure a linha "access_log" e coloque o caminho e o nome do arquivo de log do Squid, por padrão esse arquivo fica em "/var/log/squid/access.log". Se esse não for seu caso, localize no squid.conf, que é e onde fica o seu arquivo de log.
Procure a linha output_dir e coloque /var/www/sarg, essa linha define onde o relatório será colocado depois de pronto para que possa ser acessado.
Salve o arquivo e saia.
Vamos gerar agora um script para rodar o programa.
Crie um novo arquivo chamado sarg.sh (o nome do arquivo aqui tanto faz):
# vim /etc/squid/sarg.sh
Preencha-o com:
#!/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 -i -x -z
Salve a saia.
Obs.: O parâmetro -i é quem coloca o nome de usuário autenticado ao invés de só colocar o IP.
Transforme este arquivo em executável com o comando:
# chmod +x /etc/squid/sarg.sh
Copie-o para a pasta sbin:
# cp /etc/squid/sarg.sh /sbin
Pronto, seu SARG já está apto a gerar relatórios, apenas digitando o comando:
# sarg.sh
E para acessá-lo, basta abrir um navegador, digitar <ip do seu proxy>/sarg. Exemplo: 192.168.10.1/sarg, e você verá o relatório.
Automatizar a geração de relatório do SARG
Para que o SARG gere relatórios automaticamente, temos que usar o crontab para agendar a execução daquele script sarg.sh que criamos.
Logado como root, abra o arquivo /etc/crontab.
# vim /etc/crontab
Adicione a linha:
00,30 * * * * root sarg.sh
Essa linha define que a cada 30 minutos o computador executará o script sarg.sh como usuário root.
Salve o arquivo e saia.
Pronto, agora a cada 30 minutos o seu relatório será atualizado.
O próximo passo é criar um domínio para que possam acessar facilmente o relatório sem precisar saber o ip do servidor, mas isso fica para outro tutorial.
[2] Comentário enviado por afdominguez em 13/01/2009 - 11:08h
Alex. voce esta de parabens pelo seu artigo.
Ele salvou minha pele... heheheheh
Agora olha só. no sei script tem que dar um espaço na linha
FIM=$(date --date"0 day ago" +%d/%m/%Y)
entre a palavra --date e a "0 day ago" resolve o problema das datas.
Estou com outro problema, tambem, nao consegui fazer ele rodar no cron. fiz como voce descreu, ajustei as permições certinho e mesmo assim nao roda, a impreção que tenho é que o cron, nao esta funcionando, mas ele esta rodando pois restarto ele sem problemas.
[4] Comentário enviado por alexfelicioni em 07/02/2009 - 23:53h
Pessoal, consegui uma maneira de automatizar o processo de reletórios diários e ainda limpar o cache do squid e limpar os logs do dia anterios, claro que após criado os relatórios.
Quem se interessar me mande um email que eu mando os scripts.
lembrando que foram criados e testados em Debian.
[5] Comentário enviado por emerson2703 em 10/02/2009 - 11:18h
Alex, tive um problema quando dou o comando sarg.sh
date: opção não reconhecida '--date0 day ago'
tente 'date --help' para mais informações.
sarg: init
sarg: cannot open config file: /etc/squid/sarg.conf - no such file or directory
[6] Comentário enviado por emerson2703 em 10/02/2009 - 11:36h
Alex conseguir resolver o problema acima era pra da um espaço date 0,
mas agora esta aparecendo esta mensagem
sarg: cannot open config file: /etc/squid/sarg.conf - no such file or directory
o que é.
espero sua ajuda
[7] Comentário enviado por alexfelicioni em 11/02/2009 - 20:58h
O erro está dizendo que não achou o arquivo de configuração sarg.conf.
posta o seu script sarg.sh para eu ver;
antes de mais nada, onde voce chama o sarg, dentro do script, tem de ser assim.
sarg -f /etc/squid/sarg.conf -d [ periodo a criar o relatorio ]
verifique se o seu sarg.conf fica mesmo em /etc/squid. ví algums comentários que em algumas distribuiçoes, pode ficar em /etc/sarg.
o meu sarg eu instalei no debian hatch 4 e com o apt-get, não sei se pode dar diferença de quando compilado.
[11] Comentário enviado por ninstf em 22/07/2011 - 12:42h
Boa tarde, fiz todos os procedimentos mas quando vou acessar via browser nao aparece nada, reparei tambem que no /var/www/sarg nao tem nenhum html ou arquivo la dentro e quando crio "sarg" manualmente aparece em branco para mim, acho que estou falando besteira, mas nao consigo colocar esse sarg para funcionar nem a porrete.
desde ja agradeço.
[12] Comentário enviado por hafonso em 25/09/2012 - 09:14h
Pessoal, bom dia.
Configurei o squid + sarg no ubuntu 12.4 e está rodando legal, mais quando gero o relatório via web ele me aparece com o ip da máquina e não com o nome de usuário como eu queria.
será que tem que mudar alguma outra linha no arquivo?
não estou rodando o squid com autenticação e possuo um AD mais não tenho acesso ao AD.
[14] Comentário enviado por leandro.paulo em 27/11/2013 - 00:50h
[12] Comentário enviado por hafonso em 25/09/2012 - 09:14h:
Pessoal, bom dia.
Configurei o squid + sarg no ubuntu 12.4 e está rodando legal, mais quando gero o relatório via web ele me aparece com o ip da máquina e não com o nome de usuário como eu queria.
será que tem que mudar alguma outra linha no arquivo?
não estou rodando o squid com autenticação e possuo um AD mais não tenho acesso ao AD.
obrigado e fico no aguardo.
Herbert
Amigo, veja seu arquivo sarg.conf onde tem alguma coisa como user_ip deixa como no e resolve ip como no..
[15] Comentário enviado por clebermarcosjr em 12/09/2016 - 15:20h
Boa tarde pessoal.
Um prazer participar da comunidade, tenho aprendido muito.
Seguinte...Estou responsável por uma rede de computadores.
O ambiente conta com server CentOS 7 (fisico) com serviços de firewall, squid, sarg, samba e outros.
Bom... o CentOS esta integrado com o Servidor windows 2008 r2 (virtual hyperv) que é o AD e DNS.
As estações clientes do AD estão recebendo sua configuração de proxy por wpad via DNS do 2008.
Tudo funcionando. Squid integrado no AD mas sem popup no navegador. Sarg gerando relatório.
Porem o sarg gera o relatório por ip ou nome da maquina se habilitar o resolv ip.
Usei o sarg.usertab pra aponta usuários de cada ip e fiz reserva de ips no dhcp pra que não mude a tabela.
O problema é: Se o funcionário (A) sai de sua maquina e a bloqueia, o funcionário (B) chaga e desbloqueia a maquina com sua senha. Os acessos desse usuário (B) serão imprimidos junto com o relatório do usuário (A) pois o sarg ta olhando IP e não usuário em si.
O que quero é saber se eu posso gerar esse relatório por usuário, e se por exemplo 3 usuários usando a mesma maquina com mesmo ip. gerasse relatório separado por usuário. mesmo sendo acessos da mesma maquina.
Espero que tenha dado pra entender..
Desde ja agradeço, toda colaboração e aprendizado que venho adquirindo nesta comunidade. Abraço a todos e Viva o Linux. :D