Sarg - Gerador de relatórios do Squid - tutoriais, dicas e indicações.

Atualizado em: 10/09/2006



Sobre este documento

SARG = Squid Analysis Report Generator

Sarg é um utilitario gerador de relatórios sobre os arquivos de log do Squid, gera os relatorios em HTML e qualquer estação da rede ou mesmo via web tem acesso aos relatorios em um servidor web, são relatórios e gráficos ricos em detalhes.

Tutorial - Sarg - instalar e configurar em diversas distribuições, tem tópico especifico para diferencir comandos de instalação e outros detalhes peculiares a cada distro, inclue também comandos e linhas de comando, scripts e agendar execução automatica.

Algumas dicas e comandos

Lembre que precisa do Squid instalado na maquina onde vai rodar o Sarg, pode não estar rodando nem configurado, mesmo quando vai copiar os logs de outra maquina para gerar relatórios, de qualquer forma precisa do Squid instalado antes de iniciar a instalação do Sarg.

A instalação do Sarg diferencia conforme a distro, veja comandos especificos sobre a instalação no tópico sobre sua distro.

Depois de instalar o Sarg, precisa editar seu arquivo de configuração para gerar relatórios conforme suas necessidades, tem diversas opções, também depende do que consta nos logs do Squid, considere que os logs mudam conforme a configuração do squid, quando se usa autenticação deve constar o nome dos usuários nos logs, sem autenticação com certeza não tem esta informação nos logs, portanto a configuração do Sarg deve levar em conta o que tem registrado no log

Relatorios do SARG são como páginas web, requer o servidor Apache para exibir as páginas, o diretório default muda conforme a distro ou versão, portanto, requer alterações no sarg.conf ou no conf do Apache, nestes tutoriais vou configurar o SARG para salvar em diretórios default do Apache conforme instalação de cada distro, voce pode alterar as conf do Apache ou SARG, o que importa é se entenderem, o Apache achar o diretório dos relatórios e exibir as páginas.

O arquivo de configuração fica em /etc/sarg/sarg.conf, pode fazer as alterações nele diretamente com seu editor preferido ou para testes pode copiar um modelo pronto, neste documento tem varias indicações de como fazer esta troca.

Segue os passos para troca do sarg.conf no CL10, não aplique em outras distros porque o diretório default do Apache é diferente e requer alteração no sarg.conf.

  cd /etc/sarg
  mv sarg.conf ori-sarg.conf
  wget http://www.zago.eti.br/modelos/sarg20.conf
  cp sarg20.conf sarg.conf

Gerar relatorios, execute:

sarg -f /etc/sarg/sarg.conf

Prontinho, relatorios gerados, pra acessar a partir do navegador da propria maquina ou qualquer estação estação da rede, coloque na URL o IP//squid-reports/, por exemplo: http://192.168.1.3/squid-reports/

Onde o IP 192.168.1.3 é o IP da maquina onde gerou os relatorios, precisa também do servidor web (apache) rodando.

Considere o uso de senhas para acessar estes relatorios, procure neste diretório pelo FAQ senhas.txt

Ajuda,

    sarg -help
  
    sarg -x -z
  
       -x Mensagens do processo
       -z Mensagens de debug

Real time do SARG

Realtime do SARG. a partir da versão 2.1 tem este recurso. Através do navegador consegue ver os logs em tempo real, acompanhar o que os usuários estão acessando.

CVS sobre real time no SARG
http://pkgsrc.se/www/sarg

SUSE 10 e 10.1 - i386

Os passos a seguir, assume que já tenha o Squid e Apache instalados nesta maquina, também tenha acesso à internet para download ou acesso aos pacotes em outro local para instalação, no final deste documento tem inidicaçoes de tutoriais para Squid e Apache.

SUSE 10.1

Instalar via smart.

smart install sarg -y

Informações sobre SARG

  linux:/home/zago # smart search sarg
  sarg - Squid Analysis Report Generator
  sarg-debuginfo - Squid Analysis Report Generator
  
  linux:/home/zago # smart info sarg
  Name: sarg
  Version: 2.1-10@i586
  ---corta---

SUSE 10 - i386

Informações sobre o SARG no SUSE 10 - i386

  linux:/home/zago # smart search sarg
  sarg - Squid Analysis Report Generator
  sarg-debuginfo - Debug information for package sarg
  
  linux:/home/zago # smart info sarg
  Name: sarg
  Version: 2.0.8-3@i586
  Priority: 0
  Group: Productivity/Networking/Web/Utilities
  Installed Size: 682.5kB
  ---corta---
  
  
  Também tem versão especifica para arquitetura x86_64, veja o resultado da pesquisa em instalação do SUSE 10 x86_64.
  
  suse64:~ # smart info sarg
  Nome: sarg
  Versão: 2.0.8-3@x86_64
  Prioridade: 0
  Grupo: Productivity/Networking/Web/Utilities
  Tamanho Instalado: 659.5kB
  ---corta---
  

Instalar SARG via smart

smart install sarg -y

Prontinho, sarg instalado, no SUSE 10 já vem configurado, não percisa alterar nada, para gerar relatórios, execute;

sarg -f /etc/sarg.conf

Veja o resultado;

  linux:/etc # sarg -f /etc/sarg.conf
  SARG: Records in file: 4, reading: 100.00%
  sort: open failed: 110512: No such file or directory
  sort: As LC_TIME differs from LC_CTYPE, the results may be strange.
  SARG: Successful report generated on /srv/www/htdocs/squid-reports/2006Mar26-2006Mar26
  

Observe que deu alguns erros, mesmo assim gerou o relatorio, qualquer dia tento uma solução para eliminar estas mensagem de erro.

Acessar os relatórios, na maquina local, acesse o diretório /srv/www/htdocs/squid-reports/ ou a partir de outras maquinas, informe na URL o IP mais o diretório acima, neste formato; .

192.168.1.3/squid-reports/

Caso não atenda suas necessidades, então edite o arquivo de configuração do SARG que fica em /etc/sarg.conf, configure a seu modo.

Caso tenha alguma dificuldade, pode tentar uma conf pronta para testar ou comparar com a sua, tem algumas conf de outros tutoriais, use somente como comparativo, utilizei a mesma configuração do CL10 e falhou,

  linux:/etc # sarg -f /etc/sarg.conf
  *** buffer overflow detected ***: sarg terminated
  Aborted
  

Infelizmente não tenho como pesquisar sobre isto agora, em breve, mais soluções, comentarios e mais sarg.conf com outras opções de relatórios.

SUSE 10.1 - i386

Os passos a seguir, assume que já tenha o Squid e Apache instalados nesta maquina, também tenha acesso à internet para download ou acesso aos pacotes em outro local para instalação, no final deste documento tem inidicaçoes de tutoriais para Squid e Apache.

Informações sobre o SARG no SUSE 10.1 - i386

Instalar SARG via smart

smart install sarg -y

Prontinho, sarg instalado, já vem configurado, não percisa alterar nada, para gerar relatórios, execute;

sarg -f /etc/sarg.conf

Veja o resultado;

  opensuse101:/home/zago # sarg -f /etc/sarg.conf
  SARG: Records in file: 191, reading: 100.00%
  sort: As LC_TIME differs from LC_CTYPE, the results may be strange.
  SARG: Successful report generated on /srv/www/htdocs/squid-reports/2006Mar26-2006Mar26
  

Observe que deu alguns erros, mesmo assim gerou o relatorio, qualquer dia tento uma solução para eliminar estas mensagem de erro.

Acessar os relatórios, na maquina local, acesse o diretório /srv/www/htdocs/squid-reports/ ou a partir de outras maquinas, informe na URL o IP mais o diretório acima, neste formato; .

192.168.1.3/squid-reports/

Caso não atenda suas necessidades, então edite o arquivo de configuração do SARG que fica em /etc/sarg.conf, configure a seu modo.

Caso tenha alguma dificuldade, pode tentar uma conf pronta para testar ou comparar com a sua, tem algumas conf de outros tutoriais, use somente como comparativo.

Compilar - instalar a partir do fonte

A melhor opção é instalar a partir do rpm da própria distro, também pode instalar a partir dos fontes, geralmente para instalar versão mais recente ou personalisar a seu modo.

Instalar programas a partir dos fontes requer o compilador apropriado para o pacote que deseja compilar. Sarg tem os fontes e "c", portanto requer o compilador "c" gcc e make, o nome destes pacotes e comando para instalar muda conforme a distro, a seguire linha de comando para instalar via smart no SUSE 10.1.

Procure pelo pacote mais recente no site do projeto, em 10.09.2006 baixei a versão do sarg-2.2.2, a seguir os comandos executados no SUSE 10.1 instalado com perfil KDE, com sarg da distro instalado, comandos a serem executados no diretório onde salvou, neste exemplo utilizei /tmp/sarg.

  mkdir /tmp/sarg
  # copie o arquivo sarg-2.2.2.tar.gz
  tar -zxvf sarg-2.2.2.tar.gz
  cd sarg-2.2.2
  # leia o arquivo README com intruções e diretivas para compilar
  # ./configure --enable-htmldir /srv/www/htdocs/  #falhou então vai sem diretiva
  ./configure
  make
  make install

Prontinho, instalado, o sarg.conf vem com todas as linhas comentadas, agora precisa editar conforme sua necessidade ou substituir o sarg.conf por outro já configurado. Local do sarg.conf.

/usr/local/sarg/sarg.conf

Linha de comando para gerar relatórios.

sarg -f /usr/local/sarg/sarg.conf

Deve retornar erro por falta de configuração e ajuste nos caminhos do servidor web, locais dos logs e outras tags.

Como ponto de partida, consulta ou teste, pode usar este sarg.conf utilizado nos comandos abaixo para substituir o da instalação.

  cd /usr/local/sarg/
  mv /usr/local/sarg/sarg.conf /usr/local/sarg/sarg-original.conf
  wget http://www.zago.eti.br/modelos/sarg222.conf
  cp sarg20.conf sarg.conf
  sarg -f /usr/local/sarg/sarg.conf

Acessar relatórios, use IP do servidor apache mais /squid/reports na URL, exemplo para servidor com ip 192.168.1.2.

http://192.168.1.2/squid-reports

Neste sarg.conf não tem muitos recursos da versão 2.2.2, ele é uma adaptação do Sarge 2.0, funciona e serve como consulta ou testes...

Depois volte o sarg.conf original para editar a seu modo.

Algumas anotações temporárias, colinha para lembrar dos detalhes nos futuros testes. Diretivas para compilar, default tem caminho diferente do SUSE

  --enable-htmldir - where the www html root dir is
  default: /var/www/html

Falhou ao tentar compilar com esta opção.

  ./configure --enable-htmldir /srv/www/htdocs/
  
  Sem a diretiva acima o diretório instalou sarg-php 
  /usr/local/sarg/sarg-php 
  
  o diretório default do apache2 fica em.
   /srv/www/htdocs/

FC5 - Instalar no Fedora Core 5 - arquitetura x86_64

Os passos a seguir, assume que já tenha o Squid e Apache instalados nesta maquina, também tenha acesso à internet para download ou acesso aos pacotes em outro local para instalação, no final deste documento tem inidicaçoes de tutoriais para Squid e Apache.

Até agora, a solução que funcionou foi com o pacote para (Red Hat EL 4 - x86_64), para instalar, tente uma destas opções, se falhar uma tente a outra.

rpm -ivh http://dag.wieers.com/packages/sarg/sarg-1.4.1-5.2.el4.rf.x86_64.rpm

Falhou, então faça o download do pacote "sarg-1.4.1-5.2.el4.rf.x86_64.rpm", procure por ele em;

http://dag.wieers.com/packages/sarg/

no diretório onde salvou, execute;

rpm -ivh sarg-1.4.1-5.2.el4.rf.x86_64.rpm

Resultado;

  [root@FC5 zago]# rpm -ivh sarg-1.4.1-5.2.el4.rf.x86_64.rpm
  aviso: sarg-1.4.1-5.2.el4.rf.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
  A preparar...               ########################################### [100%]
     1:sarg

Prontinho, sarg instalado, para gerar relatórios, precisa editar o arquivo de configuração do SARG que fica em /etc/sarg.conf, configure a seu modo, caso tenha alguma dificuldade, pode tentar uma conf pronta para testar ou comparar com a sua, utilizei a mesma configuração do CL10 que usa Sarg 2.0, considere que na versão mais nova pode ter mais recursos, também a minha configuração pode não atender suas necessidades, use somente como comparativo, peguei o conf do CL10 e alterei somente a tag

output_dir /var/www/html/squid

Funcionou, então vai a dica para substituir o sarg.conf da instalação pelo modelo do FAQ, veja a sequencia de comandos;

  mv /etc/sarg.conf /etc/original-sarg.conf
  cd /etc/sarg
  mv sarg.conf ori-sarg.conf
  wget http://www.zago.eti.br/modelos/fc5-sarg.conf.txt
  cp fc5-sarg.conf.txt sarg.conf
  sarg -f /etc/sarg/sarg.conf
  
  SARG: Successful report generated on /var/www/html/squid/squid-reports/2006Mar24-2006Mar24

Na maquina local, acesse o diretório acima para cosultar o relatório, a partir de outras maquinas, informe na URL o IP mais o diretório squid, neste formato; .

192.168.1.3/squid/

Já tem a versão 2.1.1 mas não encontrei os rpm para x86_64, tentei instalar a partir do .tar.gz e falhou, veja a mensagem;

  [root@FC5 sarg-2.1]# ./configure --enable-sysconfdir=/etc/sarg
  checking build system type... Invalid configuration `x86_64-pc-linux-gnuoldld': machine `x86_64-pc' not recognized
  configure: error: /bin/sh cfgaux/config.sub x86_64-pc-linux-gnuoldld failed

Tentei também com pacotes para ix86 e deu erro de arquitetura, deve funcionar em instalações ix86, exceto para x86_64, tem pacotes rpm para as demais versões do FC, procure pelo pacote do sarg em;

http://www.mack.ro/linux/sarg/

Gerar relatórios

Relatórios com nome do usuário ou estação em lugar do IP.

Mesmo que não conste o nome dos usuários no log do Squid, é possível gerar relatorios com nome do usuário em lugar do IP, voce deve criar uma tabela com os IP e seus respectivos nomes que vão aparecer nos relatorios gerados pelo sarg, veja este item do /etc/sarg/sarg.conf

  # TAG: usertab filename
  #      You can change the "userid" or the "ip address" to be a real user name on the rpeorts.
  #      Table syntax:
  #               userid name   or   ip address name
  #      Eg:
  #               SirIsaac Isaac Newton
  #               vinci Leonardo da Vinci
  #               192.168.10.1 Karol Wojtyla
  #
  #      Each line must be terminated with '\n'
  #
  usertab none

Altere a linha (TAG): usertab none

Para:

usertab /etc/sarg/ip_nomes

Onde /etc/sarg/ip_nomes é um arquivo texto puro com duas colunas, a primeira com o IP e a segunda com o nome que usará na exibição do relatório com resumo de utilização, somente neste relatorio será feita a troca do IP pelo nome associado a ele, dentro do arquivo, somente um IP com nome por linha.

Crie este arquivo ip_nomes e dentro dele coloque o IP de cada maquina da tua rede, ao lado do IP coloque o nome que queira exibir nos relatorios, por exemplo:

  cat /etc/sarg/ip_nomes
  192.168.1.53 zago
  192.168.1.6  caixa
  192.168.1.38 anderson

Prontinho, a partir desta alteração, quando executar o comando:

sarg -f /etc/sarg/sarg.conf -p

Somente no relatorio inicial será feita a troca do IP pelo nome associado a ele, nos demais relatorios continua utilizando o IP.

Mais tutoriais, documentação, FAQ e indicações de sites sobre Sarg

Acessar relatorios via web ou a partir de outra maquina da rede, requer o servidor web rodando, veja tutoriais dicas e FAQ sobre o apache em:
http://www.zago.eti.br/apache.html

Tutoriais para instalar no Conectiva
http://www.zago.eti.br/squid/sarg-2.0.txt

FAQ com mensagens da lista Linux-br, dicas e instalação, tutorial CL9, outras dicas sobre relatórios e indicações de sites relacionados:
http://www.zago.eti.br/squid/sarg.txt
SARG - gerador de relatorios sobre o log do Squid. Download, documentação e screenshot.
Versão 2 em diante com graficos, o desenvolvedor disponibilizou um relatório na web, conheça melhor, navegue em:
http://sarg.sourceforge.net/
http://sarg.sourceforge.net/squid-reports/index.html
Tutorial em portugues, bem detalhado e explicativo sobre como configurar o sarg, varios exemplos de configuração e parametros.
http://www.devin.com.br/eitch/sarg/
Rapidinha com o Squid, Iptables, Sarg, SaMBa e Apache
http://www.linuxdicas.com.br/article1260.html
http://www.linuxrapido.linuxdicas.com.br/modules.php?name=Sections&op=viewarticle&artid=71

Lista de discussão sobre o desenvolvimento do Sarg, em inglês, com participação do desenvolvedor do Sarg (Pedro Orso), participe, ajude, colabore ...
http://groups.yahoo.com/group/orso/

Gerenciando relatórios do SARG
Com scripts, comandos e comentários.
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1416

Outras indicações

PDLGS - Power Database Log Generator for Squid
Guarda os log do Squid em banco de dados MySQL e utiliza scripts em PHP pra gerar diversos tipos de relatorios, tem muitos recursos.
http://pdlgs.sourceforge.net/
Administrar o Squid e gerar diversos tipos de relatórios, por hora, usuários e etc.., também em gráficos, configuração simples e relatórios via Browser, tem screenshot e mais informação.
http://www.defenselayer.com/produtos/warm/warm.html

Log muito grande?
Veja esta dica e script pra solucionar o problema.
http://br-linux.org/main/noticia-scripts_auxiliares_para_o_sarg.html
Página principal sobre Squid
http://www.zago.eti.br/squid/A-menu-squid.html
Página principal deste site (FAQ)
http://www.zago.eti.br/menu.html