Instalando e configurando o Sarg:
# apt-get install update
# apt-get install sarg
Após o processo de instalação, o principal arquivo de configuração denominado 'sarg.conf' poderá ser localizado no diretório /etc/squid. Apenas para efeitos de backup, pois é sempre bom se ter o arquivo original em reserva para eventuais problemas que possam surgir.
Crie o seu próprio 'sarg.conf':
# touch sarg.conf
Edite o arquivo utilizando o seu editor de preferência (no meu caso o mcedit) e adicione o conteúdo abaixo ao mesmo:
# Script para configuração do Sarg [sarg.conf]
# Desenvolvido por Júnior Jones de Menezes
# TAG: Linguagem
language Portuguese
# TAG: Caminho para o arquivo Access.log
access_log /etc/squid/access.log
# TAG: Gráficos
graphs yes
graph_days_bytes_bar_color green
# TAG: Título do Relatório
title "[Acessos a Internet]"
# TAG: Visual
font_face Arial
header_color #666666
header_bgcolor #EEEEEE
header_font_size 9px
title_font_size 11px
background_color #FFFFFF
text_color #666666
text_bgcolor #FFFFFF
title_color #009999
# TAG: Temporários
temporary_dir /tmp
# TAG: Diretório de Saída (Modifique de acordo com sua necessidade)
output_dir /var/www/squid-reports
# TAG: Top Users
topuser_sort_field BYTES reverse
user_sort_field BYTES reverse
# TAG: URL Excluídas do Relatório
exclude_hosts /etc/squid/sarg.hosts
# TAG: Filtragem de Strings
exclude_string /etc/squid/sarg.strings
# TAG: Filtragem de Usuários
exclude_users /etc/squid/sarg.users
# TAG: Formato de Data
date_format e
# TAG: Limite de Logs [0 = Sem limites]
lastlog 0
# TAG: Mostrar IP
user_ip no
# TAG: Mostrar Usuário
usertab /etc/squid/sarg.usertab
# TAG: Gerando Relatório
remove_temp_files yes
index yes
overwrite_report yes
records_without_userid ignore
use_comma no
topsites_num 100
topsites_sort_order BYTES D
exclude_codes /etc/squid/sarg.exclude_codes
max_elapsed 28800000
report_typie topsites users_sites sites_users date_time denied auth_failures site_user_time_date
long_url no
show_successful_message no
topuser_fields NUM DATE_TIME USERID 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"
Algumas TAGs podem ser modificadas sem maiores problemas, pois tratam-se apenas de formatação dos relatórios, outras tratam-se dos caminhos de arquivos importantes ao bom funcionamento do Sarg e o restante diz respeito a forma que o mesmo vai funcionar, por isso, é de alta importância uma revisão com fins de verificar se existe alguma discrepância entre os dados do sarg.conf aqui sugerido e as características de seu servidor.
As TAGs apresentadas abaixo são exatamente as que indicarão ao Sarg que nos relatórios gerados por ele deverá aparecer ao invés do endereço IP, o nome do usuário ou máquina devidamente setado por você.
# TAG: Mostrar IP
user_ip no
# TAG: Mostrar Usuário
usertab /etc/squid/sarg.usertab
Logo após o arquivo criado e salvo, procure no mesmo diretório (/etc/squid) um arquivo denominado 'sarg.usertab', se ele não existir, fique calmo (hehehe), crie-o você mesmo. Este arquivo será altamente importante para que nosso trabalho tenha o devido sucesso. É nele que o administrador irá setar os IPs das máquinas e o nome equivalente as mesmas. O conteúdo a ser adicionado no mesmo é exemplificado abaixo, sendo mudado de acordo com sua rede.
Exemplo:
192.168.52.2 gabriel
192.168.52.3 daniel
192.168.52.4 rafael
Esta é a forma correta do arquivo, qualquer outra forma não dará o resultado esperado. Na ÚLTIMA LINHA do arquivo 'sarg.usertab' adicione o caractere '#'.
Como visto acima, é o 'sarg.usertab' que possibilita ao Sarg mostrar nomes amigáveis ao invés de endereços IPs, fator muito útil em redes de grande porte e não menos importante em pequenas redes.
Gerando os relatórios
Criaremos agora o script que irá orientar ao Sarg sobre o total de dias que se deseja apresentar nos relatórios. Crie um arquivo dentro do diretório /etc/squid denominado 'sarg.sh':
# touch diario.sh
Dê permissão total:
# chmod 777 sarg.sh
Para gerar os relatórios diariamente, insira o conteúdo abaixo no arquivo recém-criado (/etc/squid/sarg.sh):
#!/bin/bash
INICIO=$(date --date "0 days ago" +%d/%m/%Y)
FIM=$(date --date "0 day ago " +%d/%m/%Y)
sarg -f /etc/squid/sarg.conf -d $INICIO-$FIM -p -x -z
Para os relatórios semanalmente crie outro arquivo com o conteúdo:
# touch semanal.sh
#!/bin/bash
INICIO=$(date --date "7 days ago" +%d/%m/%Y)
FIM=$(date --date "0 day ago " +%d/%m/%Y)
sarg -f /etc/squid/sarg.conf -d $INICIO-$FIM -p -x -z
Para gerar os relatórios mensalmente outro arquivo:
# touch mensal.sh
#!/bin/bash
INICIO=$(date --date "31 days ago" +%d/%m/%Y)
FIM=$(date --date "0 day ago " +%d/%m/%Y)
sarg -f /etc/squid/sarg.conf -d $INICIO-$FIM -p -x -z
Muitos usam o crontab para gerar os relatórios, mas eu os gero executando os executáveis quando eu quero pois minha rede é pequena e não preciso dos relatórios sempre. Mas fica a dica.