Squid + SARG: Gerando relatórios pelo nome de usuário autenticado

Publicado por Alex A. Felicioni em 22/08/2008

[ Hits: 54.443 ]

 


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.

Outras dicas deste autor

Squid + Iptables: Liberando acesso de programas que não funcionam na internet compartilhada

Conectividade Social e Squid

Leitura recomendada

Características gerais do Zenwalk

Hack 'n' Cast v0.3 - Introdução ao GNU/Linux

Escolhendo a distribuição

Usando o cron como despertador

O Everest do Linux

  

Comentários
[1] Comentário enviado por Kleison Paiva em 29/09/2008 - 21:35h

Estou iniciando no Linux e achei esse tutorial muito bom!!!
Vou tentar implementar isso no servidor que estou configurando!

[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.

Oque pode ser???

[3] Comentário enviado por alexfelicioni em 14/01/2009 - 00:08h

Verifica se o arquivo sarg.sh está na pasta /sbin, do contrário o sistema não a encontra.

se estiver certo, dá uma olhada neste artigo http://www.vivaolinux.com.br/artigo/Agendando-tarefas-em-Linux-Unix-usando-o-cron/

falow, espero ter ajudado

[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.

alexfelicioni@ig.com.br

valeu

[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.

falow, mas posta aí seu script.

[8] Comentário enviado por weltonpba em 11/09/2009 - 09:53h

Muito bom a Dica! ta de parabens
aqui comigo funcionou perfeito...

[9] Comentário enviado por larrosiere em 16/02/2011 - 16:15h

caro Alex A. Felicioni tive um problema aqui

no meu caso quando eu digito no browser: ip do proxy/sarg (10.101.4.5/sarg)

ele pede um usuario e senha onde encontro esse login

[10] Comentário enviado por larrosiere em 16/02/2011 - 16:21h

acho que vi o erro deve ser por que nessa linha apontei para /var/www/squid-reports

abraços aguardo sua resposta

[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.

obrigado e fico no aguardo.

Herbert

[13] Comentário enviado por andrejhonny em 03/01/2013 - 14:14h

Ótima dica...funciona 100%
Valeu.

[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..


espero ter ajudado

[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



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts