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