Estou adicionando ao nosso sistema de monitoramento mais uma opção, que é a listagem dos 10 sites mais acessados nos Centros Digitais de Cidadania.
Primeiramente você deve ter toda a estrutura do proxy em funcionamento (Squid + Iptables ou Squid + Firefox configurado pra sair pelo proxy). Em seguida execute o comando em Shell Script abaixo:
# cat /var/log/squid/access.log | egrep -i -v “(\.jpg|\.gif|\.png|\.swf|\.jpeg|\.js|\.css|\.ico|\?)” | awk ‘{print $7}’ | sort | cut -d’/’ -f 1,2,3 | uniq -c | sort -rn | head -10
Ao final do comando será apresentada a quantidade de acessos ao site juntamente com seu endereço, o resultado será parecido com este:
1338 http://downloads.berimbau.ba.gov.br
101 http://safebrowsing-cache.google.com
22 http://www.secti.ba.gov.br
20 http://mirrors.adnettelecom.ro
12 http://www.bahianoticias.com.br
12 http://vida.berimbau.ba.gov.br
7 http://www.atalibaneto.com.br
7 http://atalibaneto.wordpress.com
6 http://www.cidadaniadigital.ba.gov.br
3 http://platform.twitter.com
Feito!
O que esse comando faz?
1. Primeiro vamos varrer todo o log aonde fica armazenado os sites acessados pelos usuários.
# cat /var/log/squid/access.log
2. Em seguida vou filtrar as conexões excluindo os sites que não me interessa como; imagens, ícones, java, flash e etc. Só quero o site principal que o usuário acessou. (você pode aprimorar essa limpeza adicionando mais opções ao filtro)
egrep -i -v “(\.jpg|\.gif|\.png|\.swf|\.jpeg|\.js|\.css|\.ico|\?)”
3. Seleciono o endereço dos sites que estão na 7ª coluna e organizo os sites em ordem alfabética.
awk ‘{print $7}’ | sort
4. Pego apenas o endereço principal dos sites, para isso vou pegar tudo que existir até a 3ª /. Por exemplo se aparecer assim http://www.atalibaneto.com.br/asdhkshkashd___34734 será mostrado http://www.atalibaneto.com.br
cut -d’/’ -f 1,2,3
5. Realizo a contagem de sites repetidos e organizo em ordem decrescente .
uniq -c | sort -rn
6. Listo apenas os 10 primeiros sites acessados, se você quiser visualizar todos, remova o comando abaixo. Se deseja alterar a quantidade de sites apresentado na lista, altere o número 10 para o valor que desejar.
head -10
Os testes foram realizados no Debian Lenny e Squid versão 2.7.STABLE3-4.1lenny1.
Existe uma ferramenta chamada Sarg que cria diversos relatórios através do log do Squid, inclusive o TOP10. Não usei o Sarg porque preciso dessa lista em modo texto e o Sarg gera relatórios em HTML dentre outros motivos. Além do mais Shell Script é Shell Script, simples e eficiente. :)
Até breve!
0sem comentários ainda