Aprenda a montar estatísticas precisas e com gráficos a partir dos arquivos de log do servidor de páginas Apache. Saiba quem está acessando o seu servidor.
Introdução
O Webalizer é uma poderosa ferramenta escrita em C que analisa os logs do seu servidor de páginas Apache e gera páginas de estatísticas completa, incluindo os correspondetes gráficos. Por ser escrita em C, possui uma velocidade fantástica, analisando milhares de linhas de log em segundos. Retirado do seu site: “Em uma máquina Pentium 200, mais de 10 mil linhas podem ser processadas em 1 segundo, e um arquivo de 40MB sendo alisado em 15 segundos (mais de 150.000 linhas).” Então dá para perceber que ele é bem rápido né?
Além disso, ele suporta diferentes tipos de arquivos de log, incluindo o formato Comum do Apache, o Formato Combinado, e suporte aos formatos de log do wu-ftpd (xferlog) e do squid. Está disponíveis em diversas línguas, incluindo o Português do Brasil. Além de ser Software Livre, claro. Só vemos vantagens neste programa, e é para isso que criei este tutorial, para ajudar a quem precisar usá-lo para montar estatísticas de seu servidor.
Download e Instalação
O Download do código-fonte do programa pode ser feito através do endereço:
- http://www.mrunix.net/webalizer/download.html (Código-fonte e alguns binários)
- http://www.megaloman.com/~hany/RPM/webalizer.html (Pacotes RPM)
Ou se você preferir, e sua distribuição suportar, utilize um “apt-get install webalizer” para instalar o pacote.
Se você pegou o código-fonte e não um pacote já pronto (eu recomendo para organização pegar um pacote RPM/DEB já pronto, ou utilizar o apt-get), então execute os seguintes comandos para compilar o código-fonte:
./configure make make install
Assim o programa será instalado no seu sistema. Por padrão, se você não especificar as opções através do ./configure, ele vai instalar os arquivos dentro do diretório /usr/local (os binários no /usr/local/bin, configuração em /usr/local/etc, entre outros), então eu recomendo você especificar as opções de diretório de instalação (–prefix) no ./configure. Para saber as opções disponíveis para compilação, utilize o comando “./configure –help”.
Configuração
Agora teremos que configurar o webalizer, criando um arquivo de configuração. Para cada estatística de site, é necessário um arquivo de configuração. Então primeiro crie um diretório chamado /etc/webalizer, onde você colocará todos os arquivos de configuração necessários.
Colocarei aqui um exemplo de um arquivo de configuração comentado, para posterior análise, chamado de principal.conf:
# Arquivo exemplo de configuração do Webalizer # Hugo Cisneiros, [email protected] # # Arquivo de Log do Apache, ou seja, onde fica o access_log do dominio LogFile /var/www/dominios/www.dominio.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/www/dominios/stats.dominio.com.br/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.dominio.com.br # Tipos a ser considerados como páginas pelo analizer; 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=
Há também as tags HTMLBody e HTMLEnd, que através delas, você pode criar “templates” para suas páginas de estatísticas. Este exemplo acima foi um exemplo bem prático, completo e ao mesmo tempo simples. Ele não faz o uso de todas as opções disponíveis no Webalizer, mas atende as necessidades básicas da maioria dos administradores de páginas. Se você quiser todas as opções, experimente ver o arquivo de exemplo que vem junto com o pacote do webalizer, no caso o arquivo webalizer.conf, localizado no diretório de configuração do webalizer.
Rodando o webalizer
Agora vamos gerar os relatórios a partir de nossa configuração anterior. Lembrando que o arquivo de configuração que criamos anteriormente é /etc/webalizer/principal.conf:
/usr/local/bin/webalizer -c /etc/webalizer/principal.conf
(Supondo que o executável foi instalado no /usr/local/bin, pois pode ser /usr/bin também)
O parâmetro -c diz para usar um certo arquivo de configuração, e é o que fizemos. Você notará que o programa é extremamente rápido, e é só assim que você vai acreditar o quão ele é rápido :) Então verifique no diretório /var/www/dominios/stats.dominio.com.br/html/principal que os arquivos de estatísticas estão lá, e que se você acessar com um navegador, verá todas as estatísticas do seu site, com bons gráficos e ótima qualidade de informação.
Programando a geração das estatísticas
Convém lembrar que o webalizer só gera as estatísticas quando você mandar, ou seja, ele tem que ficar rodando de tempos em tempos para gerar estatísticas atualizadas dos logs do Apache. Geralmente se gera as estatísticas uma ou duas vezes por dia, e para esse tipo de necessidade, usaremos o nosso velho amigo crond.
Vamos ter como exemplo rodar o webalizer duas vezes por dia, uma vez ao meio-dia e outra vez à meia-noite. Para fazer isso no exemplo deste tutorial, é só colocar a seguinte linha no /etc/crontab:
01 12,00 * * * root /usr/local/bin/webalizer -c /etc/webalizer/principal.conf
Assim, o comando /usr/local/bin/webalizer -c /etc/webalizer/principal.conf será executado pelo usuário root às 12:01 e 00:01.
Finalização
E é isso! Para provedores, seria bom criar arquivos de log separados para cada domínio virtual, ou diretório, assim o webalizer poderia gerar estatísticas para cada um destes arquivos de log.