anúncios

sábado, 14 de janeiro de 2012

Usando Sarg para monitorar acessos do Squid

Hoje irei explicar como instalar e configurar o Sarg, para gerar relatórios de acessos do servidor proxy Squid configurado no post anterior.

PS: Até a data deste post a versão do Sarg é 2.3.2, portanto verifique antes a versão atual, e apenas substitua pela versão correspondente na linha wget. Ok.

Fazendo download e instalando o Sarg
$mkdir downloads/sarg
$wget "http://prdownloads.sourceforge.net/sarg/sarg-2.3.2.tar.gz?download
$tar -xzvf sarg-2.3.2.tar.gz
$mv sarg-2.3.2.tar.gz sarg
#mkdir /var/www/htdocs/relatorios
#mkdir /usr/local/squid/sarg/
#cd sarg
#./configure --enable-sysconfdir=/usr/local/squid/sarg --enable-htmldir=/var/www/htdocs/relatorios
#make
#make install

Arquivo de configuração do Sarg
#vim /usr/local/etc/sarg.conf

# Relatório proxy Squid por dia

# Arquivo de LOG do Squid, 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 Proxy Squid"

# --- 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
output_dir /var/www/htdocs/relatorios/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 hosts que não devem estar nos relatórios
#exclude_hosts /usr/local/etc/exclude.hosts
exclude_hosts /usr/local/squid/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/etc/exclude_codes
exclude_codes /usr/local/squid/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_type 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
exclude_string /usr/local/squid/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


#sarg
SARG: Registros no arquivo: 442, lendo: 100,00%

Verifique se existe o arquivo /etc/cron.daily/sarg. Caso não existir, crie o arquivo chamado como /usr/local/bin/sarg
Coloque o código do script abaixo em um desses arquivos

#!/bin/bash

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

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


Adicione o script no /etc/crontab

01 1 * * * root /etc/cron.daily/sarg

O crontab irá ser executado o script todos os dias de madrugada.

Visualizando os acessos
http://IP-SERVIDOR-PROXY/relatorios/dia/

Feito!

2 comentários:

  1. Ola Reinaldo.

    To precisando muito de uma ajuda. Uso o Slack 14 e Squid 3.0 STABLE18.

    Onde vc diz: #mkdir /usr/local/squid/sarg/, eu coloquei etc/squis/sarg ( posso mudar este local ? ), pois aqui no usr/local nao tema pasta squid.

    Entrei na pasta /download/sarg-2.3.7/ e dei o comando: ./configure --enable-sysconfdir=/usr/local/squid/sarg --enable-htmldir=/var/www/htdocs/relatorios ( alterando /usr/local/squid/sarg para etc/squid/sarg ), so que no inicio e no final mostra esse aviso:

    configure: WARNING: unrecognized options: --enable-sysconfdir, --enable-htmldir

    E para desinstalar e instalar novamente, é preciso?

    Olhei varios tutos, mas como depende da versao do linux, fica diferente os locais.
    A conf do sarg veio parar aqui: /usr/local/etc/

    Agradesco muito a ajuda, pois ja sou leigo e to quase pirando, parece ser facil, mas li varios tutos e meu medo de fazer uma cag... rsrsrs

    Ps: Para o relatorio do Sarg funcionar, preciso do apache instalado?
    Se eu quiser ver o relatorio de fora da empresa preciso instalar tambem?


    root@pmb03:/download/sarg-2.3.7# ./configure --enable-sysconfdir=/etc/squid/sarg --enable-htmldir=var/www/htdosc/relatorios
    configure: WARNING: unrecognized options: --enable-sysconfdir, --enable-htmldir

    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating po/Makefile.in
    config.status: executing po-directories commands
    config.status: creating po/POTFILES
    config.status: creating po/Makefile
    configure: WARNING: unrecognized options: --enable-sysconfdir, --enable-htmldir
    root@pmb03:/download/sarg-2.3.7#

    ResponderExcluir
    Respostas
    1. O diretório /usr/local/squid é onde foi instalado o Squid conforme postei em http://mundodacomputacaointegral.blogspot.com.br/2011/12/configurando-servidor-proxy-autenticado.html.
      Então para o Sarg poder ler o log do Squid precisa criar um diretório acima. /diretorio/onde/instalou/squid/sarg.
      Sim, precisa o Sarg precisa do Apache para visualizar na web.
      Ok ?

      Excluir