Instalação e Configuração do Sarg no Debian Squeeze

E ai galera, aqui eu vou abordar a instalação e configuração do sarg no Debian Squeeze, o Sarg é um gerador de relatórios para o squid, a configuração dele é bem simples

Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialsqueeze_en para que não falte nenhum pacote ou configuração.

Adicione as seguintes linhas no arquivo /etc/apt/sources.list

vim /etc/apt/sources.list
[...]
#No final do arquivo /etc/apt/sources.list
deb http://www.backports.org/debian squeeze-backports main contrib non-free
deb-src http://www.backports.org/debian squeeze-backports main contrib non-free

Agora precisamos atualizar os repositórios e mandar instalar o sarg e o apache

aptitude update && aptitude install sarg apache2 -y

Vamos comentar as linhas do backport no arquivo /etc/apt/sources.list

vim /etc/apt/sources.list
[...]
#No final do arquivo /etc/apt/sources.list
#deb http://www.backports.org/debian squeeze-backports main contrib non-free
#deb-src http://www.backports.org/debian squeeze-backports main contrib non-free

Vamos fazer um backup do arquivo de configuração do sarg-reports

cp -Ra /etc/sarg/sarg-reports.conf{,.bkp}

Agora vamos configurar o sarg-reports que vai gerar os relatórios dos acesso ao proxy

vim /etc/sarg/sarg-reports.conf
     SARG=/usr/bin/sarg
     CONFIG=/etc/sarg/sarg.conf
    HTMLOUT=/var/www/sarg
  PAGETITLE="Access Reports on $(hostname)"
    LOGOIMG=/sarg/images/sarg.png
   LOGOLINK="http://$(hostname)/"
      DAILY=Daily
     WEEKLY=Weekly
    MONTHLY=Monthly
EXCLUDELOG1="SARG: No records found"
EXCLUDELOG2="SARG: End"

Agora vamos fazer um backup do arquivo de configuração do sarg

cp -Ra /etc/sarg/sarg.conf{,.bkp}

Agora vamos configurar o /etc/sarg/sarg.conf

vim /etc/sarg/sarg.conf
access_log /var/log/squid3/access.log
title "Relatorio de Acesso a Internet"
font_face Tahoma,Verdana,Arial
header_color darkblue
header_bgcolor blanchedalmond
font_size 9px
background_color white
text_color #000000
text_bgcolor lavender
title_color green
temporary_dir /tmp
output_dir /var/www/sarg
resolve_ip yes
user_ip no
topuser_sort_field BYTES reverse
user_sort_field BYTES reverse
exclude_users /etc/sarg/exclude_users
exclude_hosts /etc/sarg/exclude_hosts
date_format e
records_without_userid ignore
lastlog 0
remove_temp_files yes
index yes
index_tree file
overwrite_report yes
records_without_userid ip
use_comma yes
mail_utility mailx
topsites_num 100
topsites_sort_order CONNECT D
index_sort_order D
exclude_codes /etc/sarg/exclude_codes
max_elapsed 28800000
report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads
usertab /etc/sarg/usertab
long_url no
date_time_by bytes
charset Latin1
show_successful_message no
show_read_statistics no
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
user_report_fields 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"

Agora vamos acertar a periodicidade em que o sarg-reports vai ser executado eu vou deixar ele sendo executado a cada hora

cp -Rfa /etc/cron.daily/sarg /etc/cron.hourly/

Agora vamos gerar o primeiro relatório caso já exista algum acesso vamos ter estatísticas para analisarmos.

sarg

Agora precisamos reiniciar o apache

/etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

Seus relatórios do Sarg vão estar em http://ip_servidor/sarg

Agora vamos criar um virtualhost para o sarg

vim /etc/apache2/sites-available/sarg
<VirtualHost *:80>
 ServerName sarg.douglasqsantos.com.br
 ServerAlias sarg.douglasqsantos.com.br
 DocumentRoot "/var/www/sarg"

 <Directory "/var/www/sarg">
   Options -Indexes FollowSymLinks MultiViews
   AllowOverride All
   Order Allow,deny
   Allow From All
 
    #Autenticação do Sarg
    AuthUserFile /etc/apache2/access/sarg-htpasswd
    AuthName "Sarg"
    AuthType Basic
    require valid-user
 </Directory>
 
 #Configuração dos logs do apache
 ErrorLog /var/log/apache2/sarg.douglasqsantos.com.br-error.log
 CustomLog /var/log/apache2/sarg.douglasqsantos.com.br-access.log common
 
 #Retirando a assinatura do Apache
 ServerSignature Off
 
 IndexIgnore .??* *~ *# README RCS CVS *,v *,t *
 
 # Possible values include: debug, info, notice, info, error, crit,
 # alert, emerg.
 LogLevel info
</VirtualHost>

Agora vamos criar o diretório que vai conter o arquivo de controle dos usuários que podem acessar o sarg

mkdir /etc/apache2/access/

Agora vamos gerar o usuário e a senha, aqui eu vou cadastrar o usuário sarg

htpasswd -s -c /etc/apache2/access/sarg-htpasswd sarg
New password: 
Re-type new password: 
Adding password for user sarg

Agora vamos desativar os virtuais hosts default do apache

a2dissite default
a2dissite default-ssl

Agora vamos ativar o sarg

a2ensite sarg

Agora vamos reiniciar o apache

/etc/init.d/apache2 restart

Agora já podemos acessar http://sarg.douglasqsantos.com.br ou http://ip_servidor, aqui nós precisamos informar o usuário sarg e a senha que foi definida para ele.

Referências