Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Programas    

Gerando relatórios do Squid com o SARG


Comentários  76
Visualizações  
236.688

Neste tutorial você poderá aprender como gerar relatórios completos de acesso ao Squid com o programa SARG, que apropósito é muito bom e feito por um brasileiro :)

O SARG (Squid Analysis Report Generator) é uma ferramenta muito boa desenvolvida por um brasileiro que permite à você ver para “onde” seus usuários estão indo na Internet através da análise do arquivo de log “access.log” do famoso proxy Squid. O poder da ferramenta é incrível, ele pode dizer para você quais usuários acessaram quais sites, em que horas, quantos bytes foram baixados, quantas conexões foram feitas, relatórios de sites mais acessados, usuários que mais acessam, relatório de sites negados, falha de autenticação, entre outros. A gerência que você pode obter com isso é muito boa, principalmente para as empresas que querem economizar o uso da Internet.

Vamos aqui instalar e configurar o SARG para ele gerar relatórios diários de acesso do Squid. Para isso precisaremos de um Squid já configurado e rodando (o que não vou cobrir neste tutorial em si), que gere os logs de acesso no arquivo access.log. Se você desconhece isso, vá ao arquivo de configuração do Squid e veja se existe a linha abaixo. Se não existir, adicione:

cache_access_log /var/log/squid/access.log

Geralmente o arquivo de configuração do Squid está em “/etc/squid/squid.conf”. A linha acima especifica que o arquivo de log deverá estar em “/var/log/squid/access.log”, lembre-se disso para posteriormente informarmos ao SARG. Se você teve que adicionar essa linha no Squid, reinicie-o (ou de um ‘reload’ no serviço) para que as mudanças sejam efetivadas.

Agora vamos ao que interessa. Você precisará baixar o SARG através do endereço:

No caso deste tutorial, peguei o codigo-fonte da versão 1.2.2. Você poderá notar também que há links para pacotes pré-compilados, e caso você tenha uma distribuição suportada, você pode pegar os pacotes e instalar através do gerenciador de pacotes. Mas como peguei o código-fonte, vamos compilar o programa:

# tar zpfx sarg-1.2.2.tar.gz
# cd sarg-1.2.2
# ./configure --enable-sysconfdir=/etc/sarg

[...configurando a compilação...]

# make

[...compilando...]

# make install

Fiz o procedimento como root porque quis, na verdade o root só é requerido no passo “make install”, porque ele instala o programa “sarg” no /usr/bin e o diretório de configuração em “/etc/sarg”. Isso tudo pode ser escolhido através do comando “./configure”, e para você saber de suas opções, digite “./configure –help”.

Agora que o programa foi compilado e instalado, precisaremos configurar para ele rodar. Escolhemos na compilação o diretório /etc/sarg para armazenar os arquivos de configuração, então vamos agora trabalhar nele.

# pwd
/etc/sarg
# ls
exclude_codes  languages/  sarg.conf

Veja quais os arquivos padrões que ele cria. Como nossa instalação vai ser um pouco mais complexa, teremos de criar alguns arquivos mais, e organizar os já existentes:

# mv sarg.conf default.conf
# touch exclude.hosts
# touch exclude.strings
# touch exclude.users
# ls
default.conf   exclude.hosts    exclude.users
exclude_codes  exclude.strings  languages/

Uma breve explicação sobre os arquivos que criamos:

  • exclude.hosts – Aqui cada linha terá um domínio/URL que não será mostrada no relatório. Útil para você colocar, por exemplos, endereços de download da Intranet que passam pelo Squid, mas não gastam banda de Internet nenhuma.
  • exclude.strings – Se alguma linha do arquivo de log conter uma das strings deste arquivo (cada string por linha), esta linha do log será ignorada do relatório. Com isso você pode filtrar qualquer coisa do relatório.
  • exclude.users – Os usuários que estiverem neste arquivo (separados por linha) não serão incluídos no relatório.

Agora vamos ter que criar um arquivo de configuração para o SARG. Como eu disse anteriormente, este arquivo de configuração será para um relatório diário. Colocaremos essa configuração no arquivo “/etc/sarg/sarg-dia.conf”. Abaixo segue um arquivo de configuração comentado, para posterior análise:

# Relatório Squid por: Dia

# Língua Utilizada, coloquei em inglês aqui, mas será tudo em português
# do Brasil, veja o porquê depois.
language English

# Arquivo de LOG do Squid, lembra? Na sua configuração do Squid tem
# falando onde se encontra este arquivo.
access_log /var/log/squid/access.log

# Título da página HTML
title "Relatório Diário do Proxy"

# --- Visual ---
# Aqui tem várias variáveis que você pode mudar para deixar o
# visual do relatório (cores, fontes, etc) de acordo com o que
# você quiser. Aqui estou usando os valores padrões.
font_face Arial
header_color darkblue
header_bgcolor blanchedalmond
header_font_size -1
background_color white
text_color black
text_bgcolor beige
title_color green
#--- Fim do Visual ---

# Diretório Temporário
temporary_dir /tmp

# Diretório de Saída para as página de relatório, ou seja,
# onde o relatório vai ficar para consulta via um navegador.
# "Geralmente" esse diretório tem que estar dentro do root do seu
# servidor Web :D
output_dir /var/www/html/squid-report/dia

# Qual critério de ordem para a seção "TopUser?" USER/CONNECT/BYTES/TIME
# Isso irá organizar o relatório na seção de TopUsers, colocando os usuários
# que mais baixaram bytes primeiro.
topuser_sort_field BYTES reverse

# Qual critério de ordem para a seção "User"? SITE/CONNECT/BYTES/TIME
# Isso irá organizar a seção de usuários da mesma forma que o item anterior.
user_sort_field BYTES reverse

# Arquivo com usuários que não devem estar nos relatórios
exclude_users /etc/sarg/exclude.users

# Arquivo com hosts que não devem estar nos relatórios
exclude_hosts /etc/sarg/exclude.hosts

# Formato da data (e=dd/mm/yy, u=mm/dd/yy, w=yy/ww)
date_format e

# Limite de logs até os antigos serem removidos, quando houver mais
# de N relatórios, o mais antigo é automaticamente removido. Aqui
# estamos indicando para nunca apagar nada.
lastlog 0

# Remover arquivos temporários após o uso?
remove_temp_files yes

# Gerar o index.html? (only = gera só o index.html principal)
index yes

# Sobrescrever o relatório se já existe?
overwrite_report yes

# O que fazer com registros sem usuário? (ignore/ip/everybody)
records_without_userid ignore

# Usar vírgula ao invés de ponto?
use_comma no

# Qual a quantidade de sites mais visitados à listar?
topsites_num 100

# Qual critério de ordem para o topsites? CONNECT/BYTES A/D
# Aqui diz para ordenar os sites mais acessados por utilização de banda,
# em forma decrescente.
topsites_sort_order BYTES D

# Arquivo de códigos HTTP para serem ignorados no relatório
exclude_codes /etc/sarg/exclude_codes

# Tempo de checkagem
max_elapsed 28800000

# -- Tipo de Relatorio a ser gerado --
#      + topsites       - Mostra o site, conexão e bytes
#      + sites_users    - Mostra que usuários estavam acessando um site
#      + users_sites    - Mostra sites acessados pelo usuário
#      + date_time      - Mostra quantidade de bytes usados por dia e hora
#      + denied         - Mostra todos os sites negados com URL completa
#      + auth_failures  - Mostra falhas de autentificação
report_typie topsites users_sites sites_users date_time denied auth_failures site_user_time_date

# Exibir URLs completas? (Não recomendado)
long_url no

# Se alguma linha do access.log conter uma das strings, será ignorada
exclude_string /etc/sarg/exclude.strings

# Mostrar mensagem de sucesso na geração do relatório no fim?
show_successful_message no

# Campos para a seçao topusers
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# Quantidade de usuários para listar no relatório topsites
topuser_num 0

O arquivo de configuração em si já explica as configurações para você alterar. Mas também há mais opções disponíveis no programa, você pode ver explicações sobre estas novas configurações no arquivo padrão de configuração, que deixamos como “/etc/sarg/default.conf”.

Sobre a língua utilizada, eu verifiquei um erro que aconteceu comigo, então fiz uma solução simples e rápida pra isso. O que acontece é que mesmo mudando a variável language, o programa fica gerando relatórios em Inglês. Se acontecer isso com você, faça o seguinte:

# cd /etc/sarg/languages
# mv English English.old
# ln -s Portuguese English

O que fiz aqui foi fazer um link simbólico do English para o Portuguese, para que o programa pegue o conteúdo do arquivo Portuguese e não do English original. Repare que eu também fiz um backup do arquivo English, e lembre-se sempre disso: faça sempre backups! Tente nunca apagar algo.

Existe também outro erro em relação à isto, só que este é mais sério. O arquivo de tradução “Portuguese” está incompleto, e por isso ele não gera os links para os relatórios de falhas de autenticação e de sites mais acessados. Para consertar isso, edite o arquivo “/etc/sarg/languages/Portuguese” e adicione as seguintes linhas no final do arquivo:

"Negado"
"Topsites"

Assim a tradução não irá faltar, e os links estarão bonitinhos no lugar :) Mas agora falta rodar o programa para gerar o nosso relatório! Vamos supor que hoje seja o dia 05/02/2003 (epa, essa é a data em que estou escrevendo isso :P) e você queira gerar o que até agora acessaram no seu proxy. Execute isto:

# /usr/sbin/sarg -f /etc/sarg/sarg-dia.conf -d 05/02/2003-05/02/2003

E espere… Dependendo da quantidade de acessos ao seu proxy, e o tamanho do arquivo de log, o processo poderá demorar. Quando terminar, acesse o diretório que você configurou o “output” no seu servidor Web para ver o relatório na íntegra. Mas e agora, teremos que ficar rodando este comando todo dia pra ficar gerando? Não! :P Para isso que serve o crontab, vamos configurá-lo para rodar este comando todo dia às 01:01 da manhã.

Nota: Várias distribuições já vem com um crontab diário configurado. Ou seja, todos os arquivos executáveis que estiverem dentro do diretório “/etc/cron.daily” serão executados em um certo horário (geralmente 4 da manhã de todo dia).

Se sua distribuição tiver este diretório, crie o arquivo “/etc/cron.daily/sarg-dia”. Caso ela não tenha, crie um arquivo chamado “/usr/local/bin/sarg-dia”. Coloque o seguinte conteúdo em um desses arquivos:

#!/bin/bash

HOJE=$(date --date "1 day ago" +%d/%m/%Y)

/usr/sbin/sarg -f /etc/sarg/sarg-dia.conf -d $HOJE-$HOJE
exit 0

Se o seu caso foi de criar o arquivo “/usr/local/bin/sarg-dia”, então você terá que configurar também o crontab para rodar este programa às 01:01 da manhã como dissemos. Adicione a seguinte linha no arquivo “/etc/crontab”:

01 1 * * * root /usr/local/bin/sarg-dia

E não se esqueça de dar permissão de executável para o script que criamos:

# chmod +x /usr/local/bin/sarg-dia
(ou)
# chmod +x /etc/cron.daily/sarg-dia

Pronto. Com isso o crontab irá rodar o nosso script todo dia de madrugada. Para quem não entendeu o script, ele primeiro pega a data de 1 dia antes e coloca no formato DIA/MES/ANO, como queríamos para passar pro SARG, então ele chama e gera o relatório do dia anterior… Legal não?

Para cada dia, o SARG gera um diretório diferente, especificado por data. Experimente gerar os relatórios e verificar no diretório de saída (output), vai aparecer algo como:

# ls
01Feb2003-01Feb2003  03Feb2003-03Feb2003  index.html
02Feb2003-02Feb2003  04Feb2003-04Feb2003

Pronto! Você já pode ser um usuário feliz deste excelente gerador de relatórios :) Se você entendeu direitinho este tutorial, verá que é fácil fazer também relatórios semanais e mensais através dos scripts e crontab. Mas aí vai de exercício pra você.

Aviso: Os relatórios geram muitas páginas, e dependendo do relatório, pode gastar muito e muito espaço em disco, então tome cuidado. Por exemplo, aqui o dia 03 de Fevereiro deu 103MB de relatório. Mas ao compactar este diretório para .tar.bz2, consegui reduzir para 1.2MB :) Faça os relatórios, compacte-os, vá juntando e gravando em um CD, assim você poderá ter um histórico completo de quem acessou o que durante uma certa época. Boa sorte!

236.688

Comentários  76
Visualizações  
236.688


TagsLeia também

Apaixonado por Linux e administração de sistemas. Viciado em Internet, servidores, e em passar conhecimento. Idealizador do Devin, tem como meta aprender e ensinar muito Linux, o que ele vem fazendo desde 1997 :-)


Leia também



Comentários

Recent Trackbacks

Gerando relatórios do Squid com o SARG

[...] Fonte: http://www.devin.com.br/sarg/ [...]

Servidor Proxy Invisível +Firewall+ SQUID + Sarg + DHCP | Joel Garcia Jr

[...] isso de uma forma organizada e pela web, para isso eu utilizo um software muito bacana que é o Sarg, basta instalar no seu linux e apontar no arquivo de configuração sarg.conf o caminho onde o [...]

Comentários (74)

Carregando... Logando...
  • Logado como
Por favor será que alguém consegue me ajudar:

O SARG tenta gerar o relatório vai até o final e só gera essa mensagem!!!

Now generating Sarg report from Squid log file /var/log/squid/access.log and all rotated versions ..
sarg -l /var/log/squid/access.log
SARG: Records in file: 780035, reading: 0.00%
SARG: Records in file: 780035, reading: 0.64%
.....
SARG: Records in file: 780035, reading: 90.38%
SARG: Records in file: 780035, reading: 91.02%
SARG: Records in file: 780035, reading: 91.66%
SARG: Records in file: 780035, reading: 92.30%
SARG: Records in file: 780035, reading: 92.94%
SARG: Records in file: 780035, reading: 93.59%
SARG: Records in file: 780035, reading: 94.23%
SARG: Records in file: 780035, reading: 94.87%
SARG: Records in file: 780035, reading: 95.51%
SARG: Records in file: 780035, reading: 96.15%
SARG: Records in file: 780035, reading: 96.79%
SARG: Records in file: 780035, reading: 97.43%
SARG: Records in file: 780035, reading: 98.07%
SARG: Records in file: 780035, reading: 98.71%
SARG: Records in file: 780035, reading: 99.35%
SARG: Records in file: 780035, reading: 100.00%
.. Sarg failed! See the output above for details.
Olá amigos, veja o seguinte, tenho problemas com o sarg e está me tirando os cabelos, ao gerar os relatorios, dava a mensagem que nao havia encontrado as gravações, fiz conforme o Kleudson sugeriu nodia 08/12/09, comentar a linha:

# O que fazer com registros sem usuário? ignore/ip/everybody)

#records_without_userid ignore

agora ele gera, mas da outra mensagem de erro:

# sarg -f /etc/sarg/sarg.conf -p -d 12/05/2010-12/05/2010

SARG: Records in file: 358998, reading: 100.00%

SARG: (download) Cannot open file: /var/www/html/squid-report/dia/12May2010-12May2010/period

e no arquivo gerado, nao gera a pagina principal, index.html, gera uma pagina que ao clicar nolink, apenas mostra uma lista dos usuarios e o que acessaram, nao mostra p que mais interessa, o tempo gasto, e pior, nao na pagina pagrao do sarg.

alguem poderia me dar umas dicas sobre isso?

grato.
1 resposta · ativo 586 semanas atrás
Bom dia Pessoal

Aqui o meu SARG é 2.3.1 e está rodando blza, com os nomes dos usuários, só que não aparece no relatório a opção de sites negados "denieds", alguem sabe o que pode ser?
1 resposta · ativo 586 semanas atrás
Hugo, parabéns, ótimo tópico e pelo que vi ja ajudou muita gente !

Mas voce poderia postar algo relacionado com os campos que estão presentes no relatório do Sarg ?

Com explicação de cada campo, e especificações do porque desses campos.

Seria de grande ajuda para o melhor entendimento de todos.
1 resposta · ativo 602 semanas atrás
bom dia amigo no meu caso uso debian 4 etch eu tenho que cria o sarg-dia no etc/cron.daily

e tambem no etc/squid/sarg-dia porque no debian o sarg fica dentro do diretorio do squid e nao entendi se eu tenho que muda a hora ou nao porque no meu caso ja tem o diretorio etc/cron.daily e se for o caso de mudar onde eu mudo a hora e gerar os relatorios - See more at: http://www.devin.com.br/sarg/comment-page-2/#stha...
Parabéns pelo post. Rápido e rasteiro, sem muita lenga, lenga. Direto ao ponto.

Obrigado por dividir seu conhecimento.

Abraços
e ai
E ae Hugo blz? Valeu pela matéria. Meu amigo usa no site dele e roda de boa carros usados brasil, vamos ver no que vai dar...
Aí Hugo Cisneiros meus parabens ficou muito bem explicado e me ajudou bastante como iniciante creio que a todos. Parabéns
Primeiramente parabéns pelo artigo, muito bom.

Só fiquei com uma dúvida: existe a possibilidade de tirar um relatório mensal, por exemplo, o usuário X acessou esses sites, no mês de Novmebro.

Abs...
Ola amigo, voce que entende mais ou alguem que puder me ajudar,

eu uso um servidor radios para os usuarios e ele passam por um hotspot mikrotik, como faço para o sarg ler o que os usuarios acessam independente de qualquer maquina, ja fiz varias procuras na net e não achei nd, se pouder me ajudar fico grato
Olá pessoal, to com uma duvida meu sarg gera os relatorios de index topsites Sites & Users Denied e Auth Failures.

O detalhe é que dentro da pasta do relatorio o sarg cria varias pastas com os nomes de usuarios e dentro das patas deveria ter uma pagina com o nome_do_usuario.html, Porque na index.html tem um hyperlink para dentro daquela pasta.

Meu conf esta igual ao de voces.

Fico grato pela ajuda.
Em primeiro lugar parabéns...

fiz algumas implementações...(poucas) visto que uso o ubuntu server...

carinhosamente coloquei o relatório no diretório /var/www/x9

X9 = dedo-duro (x9 = gíria no Rio de janeiro = informante da polícia)

Abaixo segue o script.

language English

access_log /var/log/squid/access.log

title "Relatorio Diario do Proxy - 1ª Cia E Cmb Pqdt"

#### INICIO FORMATAÇÃO VISUAL####

font_face Arial

header_color darkblue

header_bgcolor blanchedalmond

header_font_size -1

background_color yellow

text_color black

text_bgcolor white

title_color green

##### FIM FORMATAÇÃO VISUAL ################

#####INICIO DA FORMATAÇÃO FUNCIONAL##########

#saida temporária dos arquivos

temporary_dir /tmp

#saida definitiva dos arquivos para consulta via browser

output_dir /var/www/x9

#organiza os usuários por ordem de tráfego...quem mais baixou para quem menos

topuser_sort_field BYTES reverse

#usuários com alguma falha

user_sort_field BYTES reverse

#usuários incluidos nesta lista não aparecem no relatório...arquivo anexo

exclude_users /etc/squid/sarg/exclude.users

#maquinas incluidas nesta lista não aparecem no relatório...arquivo anexo

exclude_hosts /etc/squid/exclude.hosts

# Formato da data (e=dd/mm/yy, u=mm/dd/yy, w=yy/ww)

date_format e

# Aqui está o limite de logs. por exemplo: se colocar

# 10 terei o limite de 10 ultimos logs...depois do 10 o 11º será removido

# de N relatórios, o mais antigo é automaticamente removido.

# aqui estamos indicando para nunca apagar nada.

lastlog 0

#temporário é temporário... fez o que tinha que fazer= tchau!!!

remove_temp_files yes

#cria a página inicial do relatório...

index yes

#sobrescreve relatorios existentes

overwrite_report yes

#ignora os registros sem usuários....pode ser = (ignore/ip/everybody)

records_without_userid ip

# usar virgual ao inves de ponto...

use_comma no

# lista 100 sites mais visitados....

topsites_num 100

#Aqui diz para ordenar os sites mais acessados por utilização de banda,

# em forma decrescente.

topsites_sort_order BYTES D

#arquivos de codigos listados aqui não aparecem no relatorio

exclude_codes /etc/squid/exclude_codes

#tempo de checagem

max_elapsed 28800000

#tipo de relatorios gerados

report_typie topsites users_sites sites_users date_time denied auth_failures site_user_time_date

#não mostra url completas... fica muit longo... naõ recomendado

long_url no

#se alguma linha do access.log tiver alguma stringo aqui neste anexo, a linha toda será excluida

exclude_string /etc/squid/exclude.strings

#mostra se o relçatorio foi gerado com suscesso... saida no terminal após o comando = #sarg

show_successful_message yes

#campos que serão gerados no "top sites"

topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# quantos usuários para vão aparecer no relatório topsites

topuser_num 0

###fim do script...####
Avatar de Willian Vagner V. Co

Willian Vagner V. Co · 768 semanas atrás

Olá pessoal, Bom Dia!

Fiz a configuração do sarg, e funcionou tudo certinho, mas notei que ele não está me gerando a relação dos site NEGADOS

alterei no meu sarg.conf a seguinte configuração

# O que fazer com registros sem usuário? ignore/ip/everybody)

records_without_userid ip

após a alteração o mesmo começou a gerar o relatorio dos sites NEGADOS, mas não por usuário e sim por IP

Como que eu faço para que a relação de sites negados sai no relatório do usuário que o acessou?

Grato.
estou com o mesmo problema do usuário do fórum que postou aqui o Du, segue erro abaixo na hora que eu voi instalar o sarg. Por favor me envia a solução pois você é muito legal!

____________________________________________________________

[root@macro sarg-2.2.3.1]# ./configure –enable-sysconfdir=/etc/sarg

checking build system type… i686-pc-linux-gnu

checking host system type… i686-pc-linux-gnu

checking for gcc… no

checking for cc… no

checking for cc… no

checking for cl… no

configure: error: no acceptable C compiler found in $PATH

See `config.log’ for more details.

[root@macro sarg-2.2.5]# make

make: *** No targets specified and no makefile found. Stop.
Pessoal, uma dúvida: Meu SARG estava apresentando o mesmo problema de não gerar os relatórios. Lia o access.log e dizia depois não ter registros. Rodei sem o parâmetro -d e ele gerou o relatório. Só que usa todo o arquivo que é muito grande. Será que isso não é devido meu access.log não ter nenhum dado sobre data ? O formato dele é aquele padrão do squid que não coloca data nas linhas. Poderia ser isso ? Abc a todos.
Bom dia, ao executar o sarg ele me gerou este erro.. ppoderia me ajudaR?

*** buffer overflow detected ***: sarg terminated

======= Backtrace: =========

/lib/libc.so.6(__chk_fail+0x41)[0xd801c1]

/lib/libc.so.6(__strcpy_chk+0x43)[0xd7f5e3]

sarg[0x8062f87]

sarg[0x8064710]

sarg[0x804f411]

/lib/libc.so.6(__libc_start_main+0xdc)[0xcafe9c]

sarg[0x8049711]

======= Memory map: ========

00101000-00126000 r-xp 00000000 03:02 15091512 /lib/libm-2.5.so

00126000-00127000 r-xp 00024000 03:02 15091512 /lib/libm-2.5.so

00127000-00128000 rwxp 00025000 03:02 15091512 /lib/libm-2.5.so

0012a000-0013c000 r-xp 00000000 03:02 17136656 /usr/lib/libz.so.1.2.3

0013c000-0013d000 rwxp 00011000 03:02 17136656 /usr/lib/libz.so.1.2.3

001ea000-001ef000 r-xp 00000000 03:02 17136652 /usr/lib/libXdmcp.so.6.0.0

001ef000-001f0000 rwxp 00004000 03:02 17136652 /usr/lib/libXdmcp.so.6.0.0

001f2000-001f4000 r-xp 00000000 03:02 17136651 /usr/lib/libXau.so.6.0.0

001f4000-001f5000 rwxp 00001000 03:02 17136651 /usr/lib/libXau.so.6.0.0

0024f000-00276000 r-xp 00000000 03:02 17136658 /usr/lib/libfontconfig.so.1.1.0

00276000-0027e000 rwxp 00027000 03:02 17136658 /usr/lib/libfontconfig.so.1.1.0

00280000-0029f000 r-xp 00000000 03:02 15091520 /lib/libexpat.so.0.5.0

0029f000-002a1000 rwxp 0001e000 03:02 15091520 /lib/libexpat.so.0.5.0

002ca000-002e9000 r-xp 00000000 03:02 17130125 /usr/lib/libgd.so.2.0.0

002e9000-00309000 rwxp 0001e000 03:02 17130125 /usr/lib/libgd.so.2.0.0

00309000-0031d000 rwxp 00309000 00:00 0

00349000-00359000 r-xp 00000000 03:02 17129248 /usr/lib/libXpm.so.4.11.0

00359000-0035a000 rwxp 00010000 03:02 17129248 /usr/lib/libXpm.so.4.11.0

00bc2000-00bc3000 r-xp 00bc2000 00:00 0 [vdso]

00c7c000-00c96000 r-xp 00000000 03:02 15091378 /lib/ld-2.5.so

00c96000-00c97000 r-xp 00019000 03:02 15091378 /lib/ld-2.5.so

00c97000-00c98000 rwxp 0001a000 03:02 15091378 /lib/ld-2.5.so

00c9a000-00dd9000 r-xp 00000000 03:02 15091380 /lib/libc-2.5.so

00dd9000-00ddb000 r-xp 0013f000 03:02 15091380 /lib/libc-2.5.so

00ddb000-00ddc000 rwxp 00141000 03:02 15091380 /lib/libc-2.5.so

00ddc000-00ddf000 rwxp 00ddc000 00:00 0

00de1000-00de3000 r-xp 00000000 03:02 15091501 /lib/libdl-2.5.so

00de3000-00de4000 r-xp 00001000 03:02 15091501 /lib/libdl-2.5.so

00de4000-00de5000 rwxp 00002000 03:02 15091501 /lib/libdl-2.5.so

0360a000-03709000 r-xp 00000000 03:02 17136653 /usr/lib/libX11.so.6.2.0

03709000-0370d000 rwxp 000ff000 03:02 17136653 /usr/lib/libX11.so.6.2.0

0370f000-0378c000 r-xp 00000000 03:02 17136657 /usr/lib/libfreetype.so.6.3.10

0378c000-0378f000 rwxp 0007d000 03:02 17136657 /usr/lib/libfreetype.so.6.3.10

03791000-037b6000 r-xp 00000000 03:02 17136659 /usr/lib/libpng12.so.0.10.0

037b6000-037b7000 rwxp 00024000 03:02 17136659 /usr/lib/libpng12.so.0.10.0

03d11000-03d32000 r-xp 00000000 03:02 17130379 /usr/lib/libjpeg.so.62.0.0

03d32000-03d33000 rwxp 00020000 03:02 17130379 /usr/lib/libjpeg.so.62.0.0

03e90000-03e9b000 r-xp 00000000 03:02 15091387 /lib/libgcc_s-4.1.2-20080825.so.1

03e9b000-03e9c000 rwxp 0000a000 03:02 15091387 /lib/libgcc_s-4.1.2-20080825.so.1

08047000-08083000 r-xp 00000000 03:02 17130016 /usr/bin/sarg

08083000-0808f000 rw-p 0003b000 03:02 17130016 /usr/bin/sarg

0808f000-08234000 rw-p 0808f000 00:00 0

08246000-08267000 rw-p 08246000 00:00 0 [heap]

b7fe0000-b7fe5000 rw-p b7fe0000 00:00 0

b7fee000-b7fef000 rw-p b7fee000 00:00 0

bfbb4000-bfc08000 rw-p bffab000 00:00 0 [stack]

Abortado
Luiz também estava dando este mesmo erro no meu sarg.

( SARG: Records in file: 17393, reading: 100.00%

SARG: Nao ha registros

SARG: Fim )

Porém foi resolvido comentando a linha "records_without_userid" ficando assim:

# O que fazer com registros sem usuário? (ignore/ip/everybody)

#records_without_userid ignore

espero ter ajudado. Forte abraço a todos.
Pessoal, Muito bom esse post mesmo. Mas quqeo acrescentar ago aqui.

Na linha: output_dir /var/www/html/squid

Não sei porque mas estava com problemas para gerar o relatório, o log informava que não foi possível gravar no diretório: /var/www/html/squid. Quebrei a cabeça durante umas quatro horas e achei pessoas em varios posts que estavam com o mesmo problema.

Corrigi removendo o espaço que a instalação cria na linha citada de output.

Se esse for o seu caso, leitor, remova o espaço, a linha original está assim: output_dir /var/www/html/squid

Espero ter ajudado.

Marco Biazon
Parabens ao autor, muito bem feito o tutorial, resolveu todas a minhas necessidades, muito obrigado.
Cara muito bom seu tutorial, vai ser de muita ajudar para mim, como outras tantas dicas suas que ja utilizei
Quando dou este comando

/usr/sbin/sarg -f /etc/sarg/sarg-dia.conf -d 05/02/2003-05/02/2003

ou mando executar o arquivo sarg-dia.conf com o conteudo abaixo:

#!/bin/bash

HOJE=$(date --date "1 day ago" +%d/%m/%Y)

/usr/sbin/sarg -f /etc/sarg/sarg-dia.conf -d $HOJE-$HOJE

exit 0

dá a seguinte mensagem: line 5: /usr/sbin/sarg: Permissão negada

o que tenho que fazer para resolver este problema?

Att,

Pablo.
Olá tudo bem?

Muito bom esse tutorial.

Quando executo o comando:

/usr/bin/sarg -f /etc/sarg/sarg-dia.conf -d 02/07/2009-02/07/2009

Dá a seguinte msg: SARG: Arquivo nao encontrado: /var/lib/squid/logs/access.log

Mas o arquivo de log está neste diretório, certinho.

Alguma coisa será q eu fiz errado?

Att

André.
Olá como vai?

Quando eu executo o comando# sarg -f , da a seguinte mensagem.

SARG: (language) cannot open language file: /usr/local/sarg/languages/English

ele não gera relatórios, o posso vazer; Grato
Boa tarde!

Caros estou com um problema muito chato com sarg, ja tentei de tudo mais nada...

O negocio é o seguinte quando ele vai gerar os relatorio aparece:

SARG: Records in file: 961677, reading: 99.83%

SARG: No records found

SARG: End

SARG: Records in file: 961677, reading: 100.00%

e não gera o Index.hmtl, na verdade não gera nada pelo que vocês viram acima.

Me ajudem por favor!

Obrigado.
[root@macro sarg-2.2.5]# ./configure --enable-sysconfdir=/etc/sarg

checking build system type... i686-pc-linux-gnu

checking host system type... i686-pc-linux-gnu

checking for gcc... no

checking for cc... no

checking for cc... no

checking for cl... no

configure: error: no acceptable C compiler found in $PATH

See `config.log' for more details.

[root@macro sarg-2.2.5]# make

make: *** No targets specified and no makefile found. Stop.
Bom dia

Não entendo muito de linux, porém a critério de teste instalei isso em meu escritório, realizei tudo passo a passo e no access.log tem todos os registros lá.

Na hora de gerar o relatório, qdo digito a linha /usr/sbin/sarg -f /etc/sarg/sarg-dia.conf -d 13/05/2009-13/05/2009, por exemplo, não da erro e nem aparece nada. É assim que gera o relatório mesmo? O que pode estar ocorrendo?

Se puderem ajudar ficarei mto grato!
Obrigado, Sérgio o teu sarg.conf caiu feito uma luva está funcionando blz, blz, e mais uma vez parabéns pelo belíssimo post, e ficarei atento em relação ao Elapsed Time do usuário, quando souber de algo te responderei com certeza, um abraço grande amigo, fica com Deus.
Beleza, Sérgio segue meu email flavio@sodipe.com.br

Obrigado pela atenção.
Flavio, passa seu e-mail, se desejar eu envio o arquivo sarg.conf para você testar aí. Se você usar o 'meu' sarg.conf e teu problema continuar, com certeza será algo em relação a direito de leitura ou gravação nos arquivos.

Aqui funciona "direitinho" no Fedora e no Debian etch.

A minha única dúvida, ou desilução com o Sarg é na coluna Tempo Gasto (Elapse Time). Por exemplo:

Tenho usuários que ficam na internet numa mesma página por horas a fio ( www.meucarronovo.com.br por exemplo) e o tempo mostrado no relatório do sarg é bem abaixo do que o tempo que ficaram usando.

Percebo que alguns
sérgio segue o meu sarg-dia.conf

# Relatório Squid por: Dia

# Língua Utilizada, coloquei em inglês aqui, mas será tudo em português

# do Brasil, veja o porquê depois.

language English

# Arquivo de LOG do Squid, lembra? Na sua configuração do Squid tem

# falando onde se encontra este arquivo.

access_log /var/log/squid/access.log

# Título da página HTML

title "Relatório Diário do Proxy"

# --- Visual ---

# Aqui tem várias variáveis que você pode mudar para deixar o

# visual do relatório (cores, fontes, etc) de acordo com o que

# você quiser. Aqui estou usando os valores padrões.

font_face Arial

header_color darkblue

header_bgcolor blanchedalmond

header_font_size -1

background_color white

text_color black

text_bgcolor beige

title_color green

#--- Fim do Visual ---

# Diretório Temporário

temporary_dir /tmp

# Diretório de Saída para as página de relatório, ou seja,

# onde o relatório vai ficar para consulta via um navegador.

# "Geralmente" esse diretório tem que estar dentro do root do seu

# servidor Web :D

output_dir /srv/www/htdocs/squid-report/dia

# Qual critério de ordem para a seção "TopUser?" USER/CONNECT/BYTES/TIME

# Isso irá organizar o relatório na seção de TopUsers, colocando os usuários

# que mais baixaram bytes primeiro.

topuser_sort_field BYTES reverse

# Qual critério de ordem para a seção "User"? SITE/CONNECT/BYTES/TIME

# Isso irá organizar a seção de usuários da mesma forma que o item anterior.

user_sort_field BYTES reverse

# Arquivo com usuários que não devem estar nos relatórios

exclude_users /etc/sarg/exclude.users

# Arquivo com hosts que não devem estar nos relatórios

exclude_hosts /etc/sarg/exclude.hosts

# Formato da data (e=dd/mm/yy, u=mm/dd/yy, w=yy/ww)

date_format e

# Limite de logs até os antigos serem removidos, quando houver mais

# de N relatórios, o mais antigo é automaticamente removido. Aqui

# estamos indicando para nunca apagar nada.

lastlog 0

# Remover arquivos temporários após o uso?

remove_temp_files yes

# Gerar o index.html? (only = gera só o index.html principal)

index yes

# Sobrescrever o relatório se já existe?

overwrite_report yes

# O que fazer com registros sem usuário? (ignore/ip/everybody)

records_without_userid ignore

# Usar vírgula ao invés de ponto?

use_comma no

# Qual a quantidade de sites mais visitados à listar?

topsites_num 100

# Qual critério de ordem para o topsites? CONNECT/BYTES A/D

# Aqui diz para ordenar os sites mais acessados por utilização de banda,

# em forma decrescente.

topsites_sort_order BYTES D

# Arquivo de códigos HTTP para serem ignorados no relatório

exclude_codes /etc/sarg/exclude_codes

# Tempo de checkagem

max_elapsed 28800000

# -- Tipo de Relatorio a ser gerado --

# + topsites - Mostra o site, conexão e bytes

# + sites_users - Mostra que usuários estavam acessando um site

# + users_sites - Mostra sites acessados pelo usuário

# + date_time - Mostra quantidade de bytes usados por dia e hora

# + denied - Mostra todos os sites negados com URL completa

# + auth_failures - Mostra falhas de autentificação

report_typie topsites users_sites sites_users date_time denied auth_failures site_user_time_date

# Exibir URLs completas? (Não recomendado)

long_url no

# Se alguma linha do access.log conter uma das strings, será ignorada

exclude_string /etc/sarg/exclude.strings

# Mostrar mensagem de sucesso na geração do relatório no fim?

show_successful_message no

# Campos para a seçao topusers

topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# Quantidade de usuários para listar no relatório topsites

topuser_num 0
Olá Flavio.

Compare o seu sarg.conf com o que uso. Estou postando aqui apenas as linhas não comentandas ( sem o # ) porque o arq. é muito extenso.

Verifique também os direitos de acesso aos diretorios onde estão sendo gerados os arquivos e como está o direito de acesso no access.log do squid também.

aqui está assim:

diretorio do log do squid

-rw-r--r-- 1 squid squid 187160862 Abr 16 16:56 access.log

diretorio onde está sendo gerado os arquivos para leitura por browser

drwxr-xr-x 108 root root 20480 Abr 16 04:04 diario

-rw-r--r-- 1 root root 92 Abr 10 2006 .htaccess

-rw-r--r-- 1 root root 20 Jan 31 2006 .htpasswd

drwxr-xr-x 2 root root 4096 Jul 10 2006 images

-rw-r--r-- 1 root root 3852 Jul 10 2006 index.html

drwxr-xr-x 8 root root 4096 Abr 1 05:03 mensal

drwxr-xr-x 17 root root 4096 Abr 12 04:27 semanal

Aqui está o sarg.conf (somente linhas descomentadas devido ao tamanho)

language Portuguese

# TAG: access_log file

# Where is the access.log file

# sarg -l file

#

access_log /var/log/squid/access.log

# TAG: graphs yes|no

# Use graphics where is possible.

# graph_days_bytes_bar_color blue|green|yellow|orange|brown|red

#

graphs yes

graph_days_bytes_bar_color orange

# TAG: title

# Especify the title for html page.

#

title "Squid Relatorio de Acessos"

# TAG: background_image

# Html page background image

#

background_image none

# TAG: temporary_dir

# Temporary directory name for work files

# sarg -w dir

#

temporary_dir /tmp

# TAG: output_dir

# The reports will be saved in that directory

# sarg -o dir

#

output_dir /var/www/html/squid

# TAG: topuser_sort_field field normal/reverse

# Sort field for the Topuser Report.

# Allowed fields: USER CONNECT BYTES TIME

#

topuser_sort_field BYTES reverse

# TAG: user_sort_field field normal/reverse

# Sort field for the User Report.

# Allowed fields: SITE CONNECT BYTES TIME

#

user_sort_field BYTES reverse

# TAG: exclude_users file

# users within the file will be excluded from reports.

# you can use indexonly to have only index.html file.

#

exclude_users exclude.users

# TAG: date_format

# Date format in reports: e (European=dd/mm/yy), u (American=mm/dd/yy), w (Weekly=yy.ww)

#

date_format e

# TAG: lastlog n

# How many reports files must be keept in reports directory.

# The oldest report file will be automatically removed.

# 0 - no limit.

#

#lastlog 0

# TAG: remove_temp_files yes

# Remove temporary files: geral, usuarios, top, periodo from root report directory.

#

remove_temp_files yes

# TAG: index yes|no|only

# Generate the main index.html.

# only - generate only the main index.html

#

index yes

# TAG: use_comma no|yes

# Use comma instead point in reports.

# Eg.: use_comma yes => 23,450,110

# use_comma no => 23.450.110

#

use_comma no

# TAG: topsites_num n

# How many sites in topsites report.

#

topsites_num 100

# TAG: topsites_sort_order CONNECT|BYTES A|D

# Sort for topsites report, where A=Ascendent, D=Descendent

#

topsites_sort_order BYTES D

# TAG: max_elapsed milliseconds

# If elapsed time is recorded in log is greater than max_elapsed use 0 for elapsed time.

# Use 0 for no checking

#

max_elapsed 28800000

# 8 Hours

# TAG: report_type type

# What kind of reports to generate.

# topusers - users, sites, times, bytes, connects, links to accessed sites, etc

# topsites - site, connect and bytes report

# sites_users - users and sites report

# users_sites - accessed sites by the user report

# date_time - bytes used per day and hour report

# denied - denied sites with full URL report

# auth_failures - autentication failures report

# site_user_time_date - sites, dates, times and bytes report

# downloads - downloads per user report

#

# Eg.: report_type topsites denied

#

report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads

# TAG: usertab filename

# You can change the "userid" or the "ip address" to be a real user name on the reports.

# 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

# TAG: long_url yes|no

# If yes, the full url is showed in report.

# If no, only the site will be showed

#

# YES option generate very big sort files and reports.

#

long_url no

# TAG: date_time_by bytes|elap

# Date/Time reports will use bytes or elapsed time?

#

date_time_by elap

# TAG: show_successful_message yes|no

# Shows "Successful report generated on dir" at end of process.

#

show_successful_message no

# TAG: show_read_statistics yes|no

# Shows some reading statistics.

#

show_read_statistics yes

# TAG: topuser_fields

# Which fields must be in Topuser report.

#

topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# TAG: user_report_fields

# Which fields must be in User report.

#

#user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# TAG: topuser_num n

# How many users in topsites report. 0 = no limit

#

topuser_num 0

Espero auxiliar todos
Parabéns, Hugo Cisneiros excelente post.

Estou com um probleminha quando rodo o programa para gerar o relatório ele mostra o seguinte:

SARG: Records in file: 45834, reading: 100.00%

SARG: Nao ha registros

SARG: Fim

Daí verifico na pasta do output e realmente o arquivo não foi gerado, o que será que está errado?
Boa tarde pessoal.

No relatório gerado na coluna ELAPSED TIME é mostrado o tempo total que o usuário ficou no site ou é mostrado o tempo de carregar a página. Estou usando a versão 2.2.1 e percebi que o tempo mostrado nessa coluna não é correto, ou seja, testei um usuarios que ficou mais de 3 horas no mesmo site e no elapse time mostra apenas 1 min. e 36 segundos.

Agradeço a atenção

Abcs Sergio
O MELHOR TUTORIAL QUE JA LI

PARABENS 1.000.000 de vezes

excelente trabalho me ajudou aki e poucos minutos

:D
quando vou executar o sarg

#sarg

aparece a seguinte mensagem:

# /usr/local/squid/var/loags/access.log

sendo que não existe isso em meu proxy

como posso resolver esse problema?

e quando vou acessar via web não exibe os relatorios.

se alguem puder ajudar ficarei grato.

abraços
Parabéns pelo tutorial, muito bom mesmo.

Fiz tudo direitinho, porém qual executo

sarg -f /etc/squid/sarg-dia.conf -d 09/03/2009-09/03/2009

diz que não encontrou registros. Já mudei a data para um intervalo maior; já verifiquei o access.log e tem registros, porém sempre diz que não tem registros. Alguém poderia me ajudar? Grato
Parabéns pelo Tutorial.

Quando eu executo o comando# sarg -f , da a seguinte mensagem.

SARG: (language) cannot open language file: /usr/local/sarg/languages/English

Utilizo Fedora 10 e estou com o SARG 2.2.5.

Alguem poderia me ajudar?

Desde já agradeço!
Luiz, no sarg-dia, experimenta utilizar os caminhos no comando ao invés do sarg.conf. Já me safei uma vez assim.
Pessoal, pesquisei muito e fiz uma baita de uma volta. Poderia ter lido por inteiro o sarg.conf...

Achei essa TAG:

# TAG: include_users "user1:user2:...:usern"

# Reports will be generated only for listed users.

#

#include_users none

A partir dela poderei incluir somente usuários que quero que apareçam no relatório. Só para compartilhar com o pessoal.

Abraços
Bom dia pessoal, segui os passas desse tutorial porém ao executar o sarg-dia ele me devolve o seguinte:

SARG: Records in file: 17393, reading: 100.00%

SARG: Nao ha registros

SARG: Fim

So que na hora que faço a atualização a pagina não aparece nada... o que está acontecendo.

Abraço
Bom dia pessoal. A minha dúvida é a seguinte: tenho uma gama de usuários. Tenho que gerar um relatório só de alguns... Tipo, há o exclude_users que exclui usuários, mas não haveria um tipo que de arquivo que apenas o que eu colocar lá iram aparecer no relatório? Grato
bom dia amigo no meu caso uso debian 4 etch eu tenho que cria o sarg-dia no etc/cron.daily

e tambem no etc/squid/sarg-dia porque no debian o sarg fica dentro do diretorio do squid e nao entendi se eu tenho que muda a hora ou nao porque no meu caso ja tem o diretorio etc/cron.daily e se for o caso de mudar onde eu mudo a hora e gerar os relatorios
explica melhor a parte de instalar, por onde instalo e como instalo o sarg, pelo prompt de comando? como? grato
Não consigo baixar o arquivo pelo site http://web.onda.com.br/orso/, tem algum outro???????? valeu.
Parabéns, fiz uso deste tutorial e obtive 100% de sucesso muito obrigado meu amigo, Deus lhe recompense por compartilhar seu conhecimento conosco!
Estou com uma duvida referente a cron.

ela está chamando o arquivo sar-dia.conf, mais o que deve ter neste arquivo? #!/bin/bash

HOJE=$(date --date "1 day ago" +%d/%m/%Y)

/usr/sbin/sarg -f /etc/sarg/"sarg-dia.conf" -d $HOJE-$HOJE

exit 0

Vocês pode me ajudar?
Olá Colega, quero registrar o meus parabéns pelo tutorial, até agora só tinha achado informaçoes fragmentadas, mas o seu tutorial esta completinho, Parabéns!!!

Postar um novo comentário

Comments by