Como gerar estatísticas do site através do log do web server apache utilizando como ferramenta o webalizer, produzindo dados completos.O
webalizer é uma ótima opção para você que quer acompanhar os logs do seu site, ele gera páginas com estatísticas completas, como urls de entrada e saída, páginas mais acessadas, hits do dia, mês, hora de acessos e tudo isso ainda com gráficos de imagens, que detalham tudo isso de uma forma clara e objetiva.O
webalizer é escrito em C, e analisa os logs com grande velocidade, 13 mil linhas em um micro pentium 2 por exemplo são processadas em 1 segundo. Muitos provedores de hospedagens utilizam esta poderosa ferramente, sem perdar nenhum recurso, um deles é o famoso hpg, que gerará as páginas de estatísticas das milhôes de homepages com o webalizer.
Fazendo o download e instalandohttp://www.mrunix.net/webalizer/download.htmlaqui você encontra o código fonte e binários.
http://www.megaloman.com/~hany/RPM/webalizer.htmlaqui há versões em rpm
Eu utilizarei a versão source, mas caso sua distribuição seja o Debian por exemplo, use
# apt-get install webalizer ou se for redhat e preferir o rpm, baixe uma versão em rpm e a instale com:
# rpm -ivh webalizer-Xxxx.rpmInstalandoDepois de baixar o source do
webalizer descompacte-o entre no diretório e vamos excutar os comandos:
$ tar -zxvf webalizer-2.01-10-src.tar.gz
$ ./configure --with-language=portuguese_brazil
$ make
# make install
Por padrão essa instalação irá instalar os binários em /usr/local/bin e o arquivo de configuração em /etc/. Você pode especificar outras opções através da opção ./configure --help.
Configurando o webalizerComo eu disse você irá gerar estatísticas através do log do servidor apache, isso é específicado no arquivo httpd.conf do seu apache a diretiva Virtual host, na linha CustomLog como no exemplo abaixo:
ServerAdmin seumail@provedor.com.br
ServerName www.seudominio.com.br
DocumentRoot /var/www/seudominio.com.br
ErrorLog /var/log/seudominio.com.br/logs/error_log
CustomLog /var/log/seudominio.com.br/logs/access_log common
Exemplo de arquivo de configuração do webalizerAltere as entradas de acordo com suas necessidades, crie o diretório /etc/webalizer e salve com o nome seudominio.conf por exemplo. Para cada site que você for gerar as estatísticas crie um arquivo de configuração.
# Arquivo de exemplo do webalizer
#
# Arquivo de Log do Apache, ou seja, onde fica o access_log do dominio
LogFile /var/log/seudominio.com.br/logs/access_log
# Tipo de arquivo de log, no nosso caso estamos usando o formato combinado
# do Apache
LogType clf
# Diretório à ser gerado as estatísticas, ou seja, onde vai se encontrar
# a página onde ficarão todas as estatísticas para a visualização através
# de um navegador.
OutputDir /var/log/seudominio.com.br/stats/html/principal
# Modo incremental? Isso significa que ao invés de estar gerando apenas
# as estatísticas do log atual do Apache, incrementar novas informações
# do log na página. Essa opção serve para aqueles que querem manter todas
# as estatísticas e estar sempre resetando os logs para não deixar eles
# absurdamente grandes. Bom para sites com muitos acessos.
Incremental yes
# Título da página
ReportTitle Estatísticas de acesso para:
# Nome do host
HostName www.seudominio.com.br
# Tipos a ser considerados como páginas pelo webalizer, os que não tiverem
# esta extensão, não serão consideradas páginas visualizadas pelos
# navegadores.
PageType htm*
PageType cgi
PageType php
# Psit! Não faça output nenhum! Pois assim poderemos rodar o processo
# no crontab sem ter que ficar recebendo avisos!
Quiet yes
ReallyQuiet yes
# Quantidades de "Top Sites" a serem mostrados na página principal. Aqui
# mostra a quantidade de informações para serem mostradas na página.
TopSites 30
TopKSites 30
TopURLs 30
TopKURLs 30
TopReferrers 30
TopAgents 15
TopCountries 30
TopEntry 10
TopExit 10
TopSearch 20
TopUsers 20
# Gerar página com todas as entrys (contrario dos "Top"), ou seja, além
# da página principal, o webalizer também gera uma página separada para
# cada tipo de acesso, com *todas* as informações, e não apenas com as
# "mais acessadas", ou coisas do tipo.
AllSites yes
AllURLs yes
AllReferrers yes
AllAgents yes
AllSearchStr yes
AllUsers yes
# Esconde imagens dos relatórios, ou seja, dispensa as imagens para que
# elas não apareçam no relatório e não atrapalhem. Assim o relatório não
# gera "a página mais acessada", sendo que aponta para uma imagem.
HideURL *.gif
HideURL *.GIF
HideURL *.jpg
HideURL *.JPG
HideURL *.png
HideURL *.PNG
HideURL *.ra
# Grupos para a identificação dos navegadores, para ser mostrado na
# página de relatórios dos navegadores usados pelos visitantes.
GroupAgent MSIE Microsoft Internet Explorer
HideAgent MSIE
GroupAgent Mozilla Netscape/Mozilla
HideAgent Mozilla
GroupAgent Lynx* Lynx
HideAgent Lynx*
# Tipos de mecanismos de busca, para saber que fora os mecanismos
# de buscas que referenciaram a página.
SearchEngine yahoo.com p=
SearchEngine altavista.com q=
SearchEngine google.com q=
SearchEngine eureka.com q=
SearchEngine lycos.com query=
SearchEngine hotbot.com MT=
SearchEngine msn.com MT=
SearchEngine infoseek.com qt=
SearchEngine webcrawler searchText=
SearchEngine excite search=
SearchEngine netscape.com search=
SearchEngine mamma.com query=
SearchEngine alltheweb.com query=
SearchEngine northernlight.com qr=
esse é um exemplo de configuração simples, e não utiliza todas as opções do
webalizer. Mas você pode conferir essas opções no arquivo de configuração do
webalizer, através do webalizer.conf.
Gerando as estatíticas do seu siteUse o comando:
# webalizer -c /etc/webalizer/seudominio.confa opção -c especifica qual o arquivo de configuração será analisado
feito isto é só conferir as estatísticas do seu site com seu navegador, na pasta aonde você específicou a saida html, que nesse exemplo foi:
OutputDir /var/log/seudominio.com.br/stats/html/principal
Programando a execução do webalizer no crontabUma opção interessante, é configurar o
webalizer para ser executado em determindas horas, assim você poupa tempo e faz isso de forma automatica durante o dia.
Vamos aos passosVerifique se o crond, agendador de tarefas está rodando:
# ps aux | grep croncaso ele não aparece na lista, o execute com o comando:
# crondAgendandodigite:
# crontab -eisso irá adicionar uma tarefa, e será aberto na maioria das vezes o editor vi. Aperte a tecla i para entrarmos em modo de inserção e digite.
0 7 * * * webalizer -c /etc/webalizer/seudominio.conf
Tecle ESC e salve teclando
:wq
Isso significa que todo dia as 7:00 esse tarefa será executada.
É isso ae, espero ter sido claro.
Esse texto é de autoria de Fernando Seno