Página anterior | Voltar ao início do trabalho | Página seguinte |
Agora vamos ter que criar um arquivo de configuração para o SARG. Como eu disse anteriormente, este arquivo de configuração será para um relatório diário. Colocaremos essa configuração no arquivo "/etc/sarg/sarg-dia.conf". Abaixo segue um arquivo de configuração comentado, para posterior análise:
# 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/squid/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/html/squid-report/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 usuários que não devem estar nos relatórios exclude_users /etc/sarg/exclude.users
# Arquivo com hosts que não devem estar nos relatórios exclude_hosts /etc/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 /etc/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 /etc/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 |
O arquivo de configuração em si já explica as configurações para você alterar. Mas também há mais opções disponíveis no programa, você pode ver explicações sobre estas novas configurações no arquivo padrão de configuração, que deixamos como "/etc/sarg/default.conf".
Sobre a língua utilizada, eu verifiquei um erro que aconteceu comigo, então fiz uma solução simples e rápida pra isso. O que acontece é que mesmo mudando a variável language, o programa fica gerando relatórios em Inglês. Se acontecer isso com você, faça o seguinte:
# cd /etc/sarg/languages # mv English English.old # ln -s Portuguese English |
O que fiz aqui foi fazer um link simbólico do English para o Portuguese, para que o programa pegue o conteúdo do arquivo Portuguese e não do English original. Repare que eu também fiz um backup do arquivo English, e lembre-se sempre disso: faça sempre backups! Tente nunca apagar algo.
Existe também outro erro em relação à isto, só que este é mais sério. O arquivo de tradução "Portuguese" está incompleto, e por isso ele não gera os links para os relatórios de falhas de autenticação e de sites mais acessados. Para consertar isso, edite o arquivo "/etc/sarg/languages/Portuguese" e adicione as seguintes linhas no final do arquivo:
"Negado" "Topsites" |
Assim a tradução não irá faltar, e os links estarão bonitinhos no lugar :) Mas agora falta rodar o programa para gerar o nosso relatório! Vamos supor que hoje seja o dia 05/02/2003 (epa, essa é a data em que estou escrevendo isso :P) e você queira gerar o que até agora acessaram no seu proxy. Execute isto:
# /usr/sbin/sarg -f /etc/sarg/sarg-dia.conf -d 05/02/2003-05/02/2003 |
E espere... Dependendo da quantidade de acessos ao seu proxy, e o tamanho do arquivo de log, o processo poderá demorar. Quando terminar, acesse o diretório que você configurou o "output" no seu servidor Web para ver o relatório na íntegra. Mas e agora, teremos que ficar rodando este comando todo dia pra ficar gerando? Não! :P Para isso que serve o crontab, vamos configurá-lo para rodar este comando todo dia às 01:01 da manhã.
Nota: Várias distribuições já vem com um crontab diário configurado. Ou seja, todos os arquivos executáveis que estiverem dentro do diretório "/etc/cron.daily" serão executados em um certo horário (geralmente 4 da manhã de todo dia).
Se sua distribuição tiver este diretório, crie o arquivo "/etc/cron.daily/sarg-dia". Caso ela não tenha, crie um arquivo chamado "/usr/local/bin/sarg-dia". Coloque o seguinte conteúdo em um desses arquivos:
#!/bin/bash
HOJE=$(date --date "1 day ago" +%d/%m/%Y)
/usr/sbin/sarg -f /etc/sarg/sarg-dia.conf -d $HOJE-$HOJE exit 0 |
Se o seu caso foi de criar o arquivo "/usr/local/bin/sarg-dia", então você terá que configurar também o crontab para rodar este programa às 01:01 da manhã como dissemos. Adicione a seguinte linha no arquivo "/etc/crontab":
01 1 * * * root /usr/local/bin/sarg-dia |
E não se esqueça de dar permissão de executável para o script que criamos:
# chmod +x /usr/local/bin/sarg-dia (ou) # chmod +x /etc/cron.daily/sarg-dia |
Pronto. Com isso o crontab irá rodar o nosso script todo dia de madrugada. Para quem não entendeu o script, ele primeiro pega a data de 1 dia antes e coloca no formato DIA/MES/ANO, como queríamos para passar pro SARG, então ele chama e gera o relatório do dia anterior... Legal não?
Para cada dia, o SARG gera um diretório diferente, especificado por data. Experimente gerar os relatórios e verificar no diretório de saída (output), vai aparecer algo como:
# ls 01Feb2003-01Feb2003 03Feb2003-03Feb2003 index.html 02Feb2003-02Feb2003 04Feb2003-04Feb2003 |
Pronto! Você já pode ser um usuário feliz deste excelente gerador de relatórios :) Se você entendeu direitinho este tutorial, verá que é fácil fazer também relatórios semanais e mensais através dos scripts e crontab. Mas aí vai de exercício pra você.
Aviso: Os relatórios geram muitas páginas, e dependendo do relatório, pode gastar muito e muito espaço em disco, então tome cuidado. Por exemplo, aqui o dia 03 de Fevereiro deu 103MB de relatório. Mas ao compactar este diretório para .tar.bz2, consegui reduzir para 1.2MB :) Faça os relatórios, compacte-os, vá juntando e gravando em um CD, assim você poderá ter um histórico completo de quem acessou o que durante uma certa época. Boa sorte!
Hugo Cisneiros
hugo[arroba]devin.com.br
Página anterior | Voltar ao início do trabalho | Página seguinte |
|
|