Instalaremos o
Sarg, porém como ele não existe mais oficialmente nos repositórios do
Debian 6, é necessário adicionarmos um repositório alternativo.
Para tanto, faça:
# nano /etc/apt/source.list
E adicione a seguinte linha:
deb http://backports.debian.org/debian-backports squeeze-backports main
Após salvar, atualize a sua lista de pacotes:
# aptitude update
Instale o Sarg:
# aptitude install sarg
Faremos as configurações do Sarg, para tanto, acesse seu diretório de configuração:
# cd /etc/sarg
Faça um backup do arquivo de configuração do Sarg:
# mv sarg.conf sarg.conf.original
Crie um outro arquivo em branco:
# touch sarg.conf
Edite o arquivo:
# nano sarg.conf
Adicione o seguinte conteúdo:
# Arquivo de configuração do Sarg
title "Relatorio de acesso SQUID"
access_log /var/log/squid/access.log
exclude_users /etc/sarg/exclude_users
exclude_hosts /etc/sarg/exclude_hosts
exclude_codes /etc/sarg/exclude_codes
usertab /etc/sarg/usertab
graphs yes
graph_days_bytes_bar_color orange
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
resolve_ip
user_ip no
topuser_sort_field BYTES reverse
user_sort_field BYTES reverse
date_format e
lastlog 0
remove_temp_files yes
index yes
index_tree file
overwrite_report yes
records_without_userid ip
displayed_values abbreviation
use_comma yes
mail_utility mailx
topsites_num 100
topsites_sort_order CONNECT D
index_sort_order D
max_elapsed 28800000
report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads
long_url no
date_time_by bytes
charset Latin1
show_successful_message yes
show_read_statistics yes
show_sarg_info yes
show_sarg_logo yes
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
weekdays 0-6
hours 0-23
report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads
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"
Explicando algumas linhas importantes:
- title "Relatório de acesso SQUID" → Título do relatório;
- access_log /var/log/squid/access.log → Diretório onde o Squid está salvando os logs de acesso;
- usertab /etc/sarg/usertab → Lista o número IP e o nome dos computadores da rede caso você queira que sejam identificados no relatório;
- exclude_users /etc/sarg/exclude_users → Lista de usuários a serem excluídos dos relatórios;
- exclude_hosts /etc/sarg/exclude_hosts → Lista de hosts a serem excluídos dos relatórios.
Como nessa versão do Sarg algumas coisa mudaram, para definir o título dos relatórios e também o local onde deverão ser salvos os relatórios, você deverá editar o aquivo "sarg-reports.conf":
# nano /etc/sarg/sarg-reports.conf
E altere as seguinte linhas:
HTMLOUT=/var/www/squid-reports
LOGOLINK="http://teu-site/"
PAGETITLE ="Titulo do deu relatorio"
DAILY=Dia
WEEKLY=Semana
MONTHLY=Mes
Como no teste tenho o servidor e duas estações, uma com Windows e outra com
GNU/Linux, iremos cadastrá-las no arquivo
/etc/sarg/usertab para que o nome do usuário do computador seja impresso nos relatórios.
Para tanto, faça:
# nano /etc/sarg/usertab
E adicione os IPs seguido dos nomes separados por espaços:
192.168.2.30 DalvesonWINDOWS
192.168.2.31 DalvesonLINUX
Agora verifique se o seu Squid está salvando os logs em
/var/log/squid/acess.log, pois será lá que o Sarg buscará as informações.
Faça:
# nano /etc/squid/squid.conf
E verifique se existe a linha abaixo, caso não exista, adicione-a:
access_log /var/log/squid/access.log squid
Recarregue as configurações do seu Squid:
# squid -k reconfigure
Execute o seguinte comando, para gerar o relatório de acesso no dia pelo Sarg:
# sarg-reports today
Agora, execute o seguinte comando para gerar o relatório de acesso na semana pelo Sarg:
# sarg-reports weekly
Execute o seguinte comando para gerar o relatório de acesso no mês pelo Sarg:
# sarg-reports monthly
Acesse os seus relatórios pelo navegador:
http://squid.dalveson.com.br
Você verá agora uma interface lhe dando as opções de Dias, Semanas e Meses:
Ao clicar nas opções, você verá os relatórios, observe que também aparecerá o nome do usuário do PC, conforme havíamos cadastrado:
Agora iremos automatizar a geração dos relatórios utilizando o
crontab. Para tanto, faça:
# crontab -e
E adicione o seguinte:
# gera o relatório do sarg todo dia a cada 10 minutos de cada hora
0,10,20,30,40,50 * * * * /usr/sbin/sarg-reports today
# gera o relatório do sarg todo sabado as 23 horas
* 23 * * 6 /usr/sbin/sarg-reports weekly
# gera o relatório do sarg todo dia 1 as 23 horas de cada mes
* 23 1 * * /usr/sbin/sarg-reports monthly
Pronto. Com isso os relatórios sempre estarão atualizados, porém, para que não fique uma quantidade gigantesca de relatórios salvos, é necessário que criemos outro agendamento para exclusão.
Adicione o seguinte ao crontab:
# excluir relatorios todo dias as 22:30 horas com mais de 30 dias no diretório DIAS
30 22 * * * find /var/www/squid-reports/Dias -type d -mtime +30 -exec rm -rf {} \;
# excluir relatorios todo dias as 22:30 horas com mais de 60 dias no diretório SEMANAS
30 22 * * * find /var/www/squid-reports/Semanas -type d -mtime +60 -exec rm -rf {} \;
# excluir relatorios todo dias as 22:30 horas com mais de 90 dias no diretório MESES
30 22 * * * find /var/www/squid-reports/Meses -type d -mtime +90 -exec rm -rf {} \;
Assim teremos apenas o último mês de acesso diários, apenas 2 meses de acesso semanal e apenas 3 meses de acesso mensal.
Explicando:
- Primeiro campo → Minutos (1-59)
- Segundo campo → Hora (1-23)
- Terceiro campo → Dia (1-31)
- Quarto campo → Mês (1-12)
- Quinto campo → Dia da semana (0 = domingo até 6 = sábado)
- Sexto campo → Comando a executar