Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Programas    

Montando estatísticas com o Webalizer


Comentários  3
Visualizações  
78,073

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:

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, hugo@devin.com.br
#

# 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.


Comentários  3
Visualizações  
78,073


TagsLeia também

Apaixonado por Linux e administração de sistemas. Viciado em Internet, servidores, e em passar conhecimento. Idealizador do Devin, tem como meta aprender e ensinar muito Linux, o que ele vem fazendo desde 1997 :-)


Leia também



Comentários

3 respostas para “Montando estatísticas com o Webalizer”

  1. Williams disse:

    Você possui algum tutorial com o squid

  2. Gilberto disse:

    De forma alguma consegui instalar o webalizer, já tenho servidor funcional com aplicativos utilizando a biblioteca gd no php, porém a configuração do webalizer menciona a ausencia da biblioteca gd, tentei configurar de várias formas, sem sucesso, se alguém puder me ajudar

    …checking zlib.h usability… yes

    checking zlib.h presence… yes

    checking for zlib.h… yes

    checking for main in -lpng… yes

    checking for main in -lgd… no

    configure: error: gd library not found.. please install libgd

    root@aquarius:/softs/webalizer-2.21-02#

  3. Se você usa sistama baseado no debian para usar:

    apt-get install libgd2 libgd2-dev

    Para sistema baseados no REDHAT

    yum install libgd2 libgd2-devel

    Abraços

    Carlos Henrique

Deixe uma resposta