terça-feira, 5 de abril de 2011

SARG - Saiba o que seus usuários estão acessando


Sarg é uma das melhores opções para geração de relatório a partir do log do squid. Fácil de instalar e usar. 
O tutorial abaixo foi copiado de http://www.devin.com.br/eitch/sarg/
O pacote de instalação pode ser baixado em http://sarg.sourceforge.net/ 
O SARG (Squid Analysis Report Generator) é uma ferramenta muito boa desenvolvida pelo brasileiro Pedro Orso, 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.

Instalação apt

A última instalação não usei mais o arquivo tarball baixado do site sarg, instalei diretamente pelo apt-get
$ sudo apt-get install sarg
Em relação à configuração no arquivo /etc/sarg/sarg.conf:
language Portuguese
access_log /var/log/squid3/access.log
title "Relatório de acessos internet - SQUID
header_bgcolor #C1CDC1
output_dir /var/www/sarg_incol
charset UTF-8
logo_image ./images/logo_incol.jpg
image_size 150 44
dansguardian_conf /etc/dansguardian/dansguardian.conf
Não esqueça de colocar a imagem (logo_incol.jpg) na pasta images

E ainda, não basta apenas alterar o arquivo /etc/sarg/sar.conf. Na hora de executar o sarg, é preciso indicar para o SARG o arquivo de configuração que se deseja utilizar:
$ sudo sarg -f /etc/sarg/sarg/conf

Instalação tarball

Dependências

Bibliotecas das quais o sarg depende para funcionar:
  1. libc6-dev
  2. libc6
  3. libgcc1
Veja mais detalhes no site do debian.

Instalação

cd /usr/local
tar zpfx sarg-2.2.3.1.tar.gz
cd sarg-2.2.3.1
./configure --enable-sysconfdir=/usr/local/sarg
make && make install

Configuração

Com o sarg compilado e instalado, é preciso agora configurá-lo. O diretório de instalação escolhido foi o /usr/local/sarg:
cd /usr/local/sarg
cp sarg.conf sarg.conf.original
touch exclude.hosts
touch exclude.strings
touch exclude.users
Sobre os arquivos acima:
  • exclude.hosts
Aqui cada linha terá um domínio/URL que não será mostrada no relatório. Útil para você colocar, por exemplo, 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.
Na execução do Sarg, ele buscará pelo seu arquivo de configuração, armazenado em /usr/local/sarg/sarg.conf. É possível indicar um outro arquivo de configuração. Para facilitar, no quadro abaixo segue um arquivo de configuração completo, com o nome /usr/local/sarg/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/squid3/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/sarg

# 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 /usr/local/sarg/exclude.users

# Arquivo com hosts que não devem estar nos relatórios
exclude_hosts /usr/local/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 /usr/local/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 /usr/local/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
Mesmo setando a linguagem para Portuguese, o sarg sempre coloca em inglês (não sei se numa versão mais recente foi corrigido). Para solucionar o problema, faça o quadro abaixo:
cd /usr/local/sarg/languages
mv English English.old
ln -s Portuguese English  
Ainda, no idioma Portuguese, faltam duas linhas na tradução. Adicione as duas linhas abaixo no final do arquivo:
"Negado"
"Topsites"


Configuração no arquivo padrão (sarg.conf)

No arquivo de configuração padrão do sarg, o sarg.conf, talvez seja necessário modificar as opções abaixo:
→ access_log /var/log/squid3/access.log 
→ title “Relatório de Acessos do Squid” 
→ output_dir /var/www/sarg 
→ date_format e 
→ charset UTF-8 
→ overwrite_report yes 
Crie o diretório para o sarg:
$ sudo mkdir /var/www/sarg
$ sudo chown root.wwweb /var/www/sarg
$ sudo chmod 750 /var/www/sarg

Executando o Sarg

Para apresentar o log de acessos do Squid, é preciso rodar o comando sarg (/usr/bin/sarg). Esse comando vai ler o arquivo de log descrito no parâmetro access_log do arquivo de configuração /usr/local/sarg/sarg.conf
O resultado será gravado em formato html no local descrito no parâmetro output_dir do arquivo de configuração sarg.conf. Como root, execute em um terminal:
sarg
Se não informado nenhum parâmetro ao comando, ele pegará o log da data corrente. Também é possível executar o comando da seguinte maneira:
sarg -f /usr/local/sarg/sarg-dia.conf -d 29/06/2007-29/06/2007
Onde: 
-f /usr/local/sarg/sarg-dia.conf –> informa um arquivo de configuração. Caso não seja informado, pegará o arquivo padrão em /usr/local/sarg/sarg.conf
-d 29/06/2007-29/06/2007 –> informa um intervalo de datas a ser pesquisado no log. Caso não seja informado, pega o dia atual. 

OBS: o visual apresentado pelo script de configuração padrão (sarg.confg) ficou mais apresentável do que o da configuração de sarg-dia.conf.

Automatizando o Sarg

Essa é fácil… para que o sistema construa relatórios diários e de forma automática, basta criar um script com o comando acima e colocar no cron do sistema, em /etc/crontab

Visualizando o Sarg pelo browser

É definido pela variável de configuração output_dir, do arquivo sarg.conf. Na configuração foi definido o caminho /var/www/sarg . No navegador ficará 
http://localhost/sarg

Nenhum comentário:

Postar um comentário