FreeBSD

Estatísticas de Uso do Servidor Web

Webalizer


O Webalizer é um programa escrito em C, utilizado para gerar páginas HTML com estatísticas e gráficos de utilização do Servidor Web, a partir da análise de seu arquivo de log. O Webalizer também pode analisar arquivos de log de servidores FTP. Seu site é www.mrunix.net/webalizer.

Iremos instalar o Webalizer através do Ports. Vá até o diretório /usr/ports/portuguese/webalizer-pt_BR e execute o comando "make install". Será instalado o Webalizer e também alguns outros programas dos quais ele depende para funcionar. Após a instalação, teremos a documentação em /usr/local/share/doc/pt_BR-webalizer e um exemplo de configuração em /usr/local/share/examples/pt_BR-webalizer, que também é copiado para /usr/local/etc/pt_BR-webalizer.conf-dist. O executável ficará em /usr/local/bin/pt_BR-webalizer.

Mova o arquivo /usr/local/etc/pt_BR-webalizer.conf-dist para /usr/local/etc/pt_BR-webalizer.conf, e aplique a permissão 600. O arquivo é bastante comentado e descreve todas as opções contidas. Para maiores informações sobre os parâmetros de configuração leia o manual, através do comando "man pt_BR-webalizer". Adicione as seguintes linhas (nos devidos lugares, para manter a organização):

LogFile /usr/local/apache2/logs/access_log.webalizer
OutputDir /usr/local/apache2/htdocs/webalizer-http
ReportTitle Estatisticas de Uso para
HostName servteste.exemplo.org
DNSCache dns_cache.db
DNSChildren 5

Crie o diretório /usr/local/apache2/htdocs/webalizer-http, que é onde serão guardadas as análises, acessível através do endereço http://servidor/webalizer-http.

Falta ainda agendarmos no Cron para que o Webalizer seja rodado periodicamente, e para que os arquivos de log do Apache sejam rotacionados. Esta periodicidade será mensal, à meia-noite entre um mês e outro. Crie o diretório /usr/local/apache2/logs/oldlog e também crie o arquivo /usr/local/script/rotate_log_apache.sh, com a permissão 700 e o seguinte conteúdo:

-------------------- Arquivo rotate_log_apache.sh --------------------
#!/bin/sh

# finaliza o Apache
/usr/local/apache2/bin/apachectl stop

# Define os nomes para arquivamento
OLD_ACCESS_LOG=/usr/local/apache2/logs/oldlog/access_log.`date +%y%m%d-%H%M%S`
OLD_ERROR_LOG=/usr/local/apache2/logs/oldlog/error_log.`date +%y%m%d-%H%M%S`

# faz uma cópia para ser analisada
cp /usr/local/apache2/logs/access_log /usr/local/apache2/logs/access_log.webalizer

# move os arquivos para o diretorio de arquivamento
mv /usr/local/apache2/logs/access_log `echo $OLD_ACCESS_LOG`
mv /usr/local/apache2/logs/error_log `echo $OLD_ERROR_LOG`

# inicializa o Apache
/usr/local/apache2/bin/apachectl start

# compacta os arquivados
/usr/bin/gzip $OLD_ACCESS_LOG
/usr/bin/gzip $OLD_ERROR_LOG

# apaga os logs com mais de um ano
find /usr/local/apache2/logs/oldlog -mtime +365 -exec rm -f {} \;

-------------------- Fim do arquivo rotate_log_apache.sh --------------------

Edite o arquivo /etc/crontab e adicione as seguintes linhas:

# Rotaciona os logs do Apache e roda o Webalizer
0 0 1 * * root /usr/local/script/rotate_log_apache.sh
30 0 1 * * root /usr/local/bin/pt_BR-webalizer -Q

Isto fará com que o script de rotação dos logs seja acionado à meia-noite do primeiro dia do mês, separando os logs de cada mês em arquivos diferentes. Após 30 minutos, será acionado o Webalizer, que irá fazer a análise e irá gerar as páginas com as estatísticas. Este tempo de 30 minutos é dado porque pode ocorrer de o servidor possuir mais tarefas importantes para a a meia-noite, então o Webalizer não irá prejudicá-las.

 

Atualizado em 15/06/04.

Heini Thomas Geib.
http://www2.unijui.edu.br/~heini

Voltar