Gerando relatórios no Sarg com nome da máquina/usuário ao invés do IP

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.

[ Hits: 245.185 ]

Por: Júnior Jones de Menezes em 07/06/2006


Instalando e configurando o Sarg



# apt-get install update
# apt-get install sarg


Após o processo de instalação, o principal arquivo de configuração denominado 'sarg.conf' poderá ser localizado no diretório: /etc/squid

Localize-o e modifique seu nome para 'sarg.conf.old':

# mv sarg.conf sarg.conf.old

Apenas para efeitos de backup, pois é sempre bom se ter o arquivo original em reserva para eventuais problemas que possam surgir.

Crie o seu próprio 'sarg.conf':

# touch sarg.conf

Edite o arquivo utilizando o seu editor de preferência (no meu caso o mcedit) e adicione o conteúdo abaixo ao mesmo:

# Script para configuração do Sarg [sarg.conf]
# Desenvolvido por Júnior Jones de Menezes

# TAG: Linguagem

language Portuguese

# TAG: Caminho para o arquivo Access.log
access_log /etc/squid/access.log

# TAG: Gráficos
graphs yes
graph_days_bytes_bar_color green

# TAG: Título do Relatório
title "[Relatório de Acessos a Internet]"

# TAG: Visual
font_face Arial
header_color #666666
header_bgcolor #EEEEEE
header_font_size 9px
title_font_size 11px
background_color #FFFFFF
text_color #666666
text_bgcolor #FFFFFF
title_color #009999
#logo_image none
#logo_text ""
#logo_text_color #000000
#image_size 80 45
#background_image none

# TAG: Temporários
temporary_dir /tmp

# TAG: Diretório de Saída (Modifique de acordo com sua necessidade)
output_dir /home/ftp/www/sarg

# TAG: Top Users
topuser_sort_field BYTES reverse
user_sort_field BYTES reverse

# TAG: URL Excluídas do Relatório
exclude_hosts /etc/squid/sarg.hosts

# TAG: Filtragem de Strings
exclude_string /etc/squid/sarg.strings

# TAG: Filtragem de Usuários
exclude_users /etc/squid/sarg.users

# TAG: Formato de Data
date_format e

# TAG: Limite de Logs [0 = Sem limites]
lastlog 0

# TAG: Mostrar IP
user_ip no

# TAG: Mostrar Usuário
usertab /etc/squid/sarg.usertab

# TAG: Gerando Relatório
remove_temp_files yes
index yes
overwrite_report yes
records_without_userid ignore
use_comma no
topsites_num 100
topsites_sort_order BYTES D
exclude_codes /etc/squid/sarg.exclude_codes
max_elapsed 28800000
report_typie topsites users_sites sites_users date_time denied auth_failures site_user_time_date
long_url no
show_successful_message no
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
topuser_num 0
download_suffix "zip,arj,bzip,gz,ace,doc,iso,adt,bin,cab,com,dot,drv$,lha,lzh,mdb,mso,ppt,rtf,src,shs,sys,exe,dll,mp3,avi,mpg,mpeg"

Algumas TAGs podem ser modificadas sem maiores problemas, pois tratam-se apenas de formatação dos relatórios, outras tratam-se dos caminhos de arquivos importantes ao bom funcionamento do Sarg e o restante diz respeito a forma que o mesmo vai funcionar, por isso, é de alta importância uma revisão com fins de verificar se existe alguma discrepância entre os dados do sarg.conf aqui sugerido e as características de seu servidor.

As TAGs apresentadas abaixo, são exatamente as que indicarão ao Sarg que nos relatórios gerados por ele, deverá aparecer ao invés do endereço IP, o nome do usuário ou Máquina devidamente setado por você.

# TAG: Mostrar IP
user_ip no

# TAG: Mostrar Usuário
usertab /etc/squid/sarg.usertab

Logo após o arquivo criado e salvo, procure no mesmo diretório (/etc/squid) um arquivo denominado 'sarg.usertab', se ele não existir, fique calmo (hehehe), crie-o você mesmo. Este arquivo será altamente importante para que nosso trabalho tenha o devido sucesso. É nele que o administrador irá setar os IPs das máquinas e o nome equivalente as mesmas. O conteúdo a ser adicionado no mesmo é exemplificado abaixo, sendo mudado de acordo com sua rede.

Exemplo:

192.168.0.2 Linus
192.168.0.3 Torvalds
192.168.0.4 Departamento do Linux

Esta é a forma correta do arquivo, qualquer outra forma, não dará o resultado esperado. Na ÚLTIMA LINHA do arquivo 'sarg.usertab' adicione o caractere '#'

Como visto acima, é o 'sarg.usertab' que possibilita ao Sarg mostrar nomes amigáveis ao invés de endereços IPs, fator muito útil em redes de grande porte e não menos importante em pequenas redes.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando e configurando o Sarg
   3. Fazendo os relatórios funcionar
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Squid e firewall em 5 minutos

Squid3 no Debian 8 (Jessie) com suporte a filtro de páginas HTTPS

Manual traduzido do Squid - Parte 2

Servidor proxy com Squid - Instalação e configuração

SQUID autenticado - Bloqueando o acesso dos usuários por grupos

  
Comentários
[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?

[2] Comentário enviado por PCMasterPB em 07/06/2006 - 08:43h

Boa pergunta, tb gostaria de saber como fazer isso com dhcp.

[3] Comentário enviado por thelinux em 07/06/2006 - 10:22h

Usar o dns integrado com o dhcp.

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

[5] Comentário enviado por moisesos em 07/06/2006 - 11:45h

Muito bom o Artigo, só fiquei com uma dúvida: como faço para registrar o tempo gasto pelo usuário? no meu caso fica tudo "0"? Obrigado

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

Gde abraço a todos!

Cledson

[8] Comentário enviado por laranjeira em 07/06/2006 - 18:50h

Muinto Bom.... irei testar aqui... Parabens.

[9] Comentário enviado por Junior Menezes em 09/06/2006 - 09:20h

Caro agk, utilizei a versão 2.0.5 do Sarg (você precisa atualizar a sua!!!)... []s

[10] Comentário enviado por fmordhorst em 28/06/2006 - 12:56h

Show de bola o artigo... Agora tenho uma dúvida, existe alguma forma de filtrar os sites com tempo gasto igual a 0 ou porcentagem de tempo igual a 0?

Um abraço a todos,

Filipe

[11] Comentário enviado por anderson_souza em 13/09/2006 - 11:33h

FDA! Muito bom.

Tem conteúdo, organização, e linguagem direta e objetiva.

Olha que é raro eu elogiar.

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

[13] Comentário enviado por alex_a_souza em 28/02/2007 - 10:46h

Otimo Artigo deu tudo certo.
Agora como faço para colocar um usuario e senha no Sarg?

[14] Comentário enviado por renatooluiz em 22/05/2007 - 17:44h

Parabéns, funcionou direitinho, obrigado!!!

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

Abraco

[16] Comentário enviado por alex_a_souza em 28/11/2007 - 13:38h

tem alguma maneira de só mostrar log de todos os sites "pornos"???

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

abraço

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

[22] Comentário enviado por lucianoonwave em 17/08/2008 - 18:33h

Para corrigir o tempo gasto que esta zerado, comente a linha emulate_httpd_log on no squid.conf, ficando assim o horario do tipo 1219008740.610

[23] Comentário enviado por Thiago Madella em 07/10/2008 - 09:49h

Otimo artigo amigo.

[24] Comentário enviado por gtybusch em 07/07/2009 - 17:31h

quero contribuir para quem usa squid com autenticação modifique na linha do script

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

ou inves de - p coloque -i que ele gera o relatorio por acesso do usuario autenticado , testado e comprovado.

Otimo .conf

[25] Comentário enviado por Wos- em 21/09/2009 - 12:28h

opa tava atras de um desses,
tava querendo mesmo gerar o relatório por nomes,
valeu ae,

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

- Primeiro faça que nem nosso amigo explicou no artigo acima e coloque o sarg pra funcionar;
- Depois leia este artigo aqui mesmo no VOL e implemente-o http://www.vivaolinux.com.br/artigo/DHCP-e-BIND9-Se-entendendo-via-Dynamic-DNS/?pagina=1
- Depois procure a linha abaixo no seu sarg.conf:

resolve_ip no

E troque por esta:

resolve_ip yes

Eu não testei mas deve funcionar.

Para aqueles que não conseguirem implementar ou preferem outra solução, no DHCP amarre o ip ao MAC. Assim poderá usar o /etc/hosts ou o sarg.usertab.

Para esta última dica acima me coloco a disposição para ajudar. Na primeira dica, procure preferencialmente os autores.

Obrigado

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

tem alguma dica?

[28] Comentário enviado por MALLAN em 14/11/2012 - 18:04h

Salvo minha vida no PFSENSE

OBS: Criei uma conta do pra elogia o artigo, PARABÉNS!

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


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts