Analisando logs de servidores Web e de FTP através do Webalizer

Jean Carlo Faustino <jean@rnp.br>

Serviço de Suporte a Operações (SSO)
Rede Nacional de Ensino e Pesquisa (RNP)

Apresentação
1. Introdução
2. Relatórios do Webalizer
3. Implementação
3.1 Instalação dos requisitos
3.2 Instalação do Webalizer
3.3 Execução do Webalizer
3.4 Visualização dos resultados
4. Considerações finais
Referências bibliográficas

Apresentação

Esse artigo tem o objetivo de apresentar, de maneira geral, a ferramenta freeware (open source) Webalizer, a qual se destina à análise dos arquivos de log de acesso de servidores Web e FTP.

A adoção do Webalizer como ferramenta de análise de logs de servidores Web e FTP propicia um tipo de análise que manualmente seria impraticável mas cujo resultado é bastante desejável para a administração dos serviços em questão.

O Webalizer pode ser rodado facilmente a partir de uma única linha de comando e o seu resultado é apresentado a partir de uma homepage, onde se pode verificar os resultados da análise na forma de números e de gráficos bastante claros e elucidativos.

^

1. Introdução

Quantificar a utilização de todo serviço de rede, que é colocado em operação, é uma tarefa imprescindível na administração de sistemas. E quando se refere a um servidor Web ou de FTP, então, essa quantificação torna-se uma necessidade quase que implícita à própria implantação dos serviços. No entanto, fazer isso sem o auxílio de uma ferramenta é algo impraticável. O Webalizer, porém, é uma das soluções.

O Webalizer é uma solução para a análise de utilização não somente de servidores Web e de FTP como, também, de outros serviços que gerem arquivos de logs como, por exemplo, o squid. Tomando como base, então, esses arquivos de log, a ferramenta analisa o seu conteúdo e gera um resumo - contendo tabelas e gráficos - que podem ser visualizados a partir de um website.

^

2. Relatórios do Webalizer

Conforme se mencionou, os relatórios do Webalizer - gerados a partir da análise dos arquivos de log - são bastante claros e elucidativos.

Há no website, basicamente, dois níveis de informações . O primeiro apresenta uma síntese da utilização do serviço no último ano, isto é, nos últimos doze meses - o que é apresentado tanto na forma de tabela de dados como num gráfico como no exemplo a seguir (gráfico 1).

Utilização do serviço nos últimos doze meses

Gráfico 1 - Utilização do serviço nos últimos doze meses

dados de uso em relação ao número de páginas (Pages), arquivos (Files) e requests (Hits); no gráfico amarelo são apresentados dados que indicam o número de visitas recebidas; e, por último, o gráfico vermelho apresenta os dados relativos ao número de Kbytes que foram enviados para os clientes do serviço.

Abaixo desse gráfico é apresentada uma tabela com os respectivos valores. Entretanto, na sua leitura, deve-se atentar para o fato de que os valores com a representação gráfica são aqueles relativos à seção "Monthly Totals" , ou seja, são aqueles valores que ficam à direita da tabela - enquanto que a seção da esquerda ("Daily Avg") parece se referir a uma média diária. De qualquer maneira, para se obter mais informações de mês específico, basta clicar no respectivo link da coluna "Month" (a primeira da esquerda para a direita) da tabela.

Ao clicar no link de um mês específico, será apresentada uma segunda página - a qual traz outras tabelas e outros três gráficos.

O primeiro gráfico apresenta um sumário da utilização do serviço ao longo do mês em questão. (gráfico 2)

Utilização do serviço ao longo do mês

Gráfico 2 - Utilização do serviço ao longo do mês

Observe que no gráfico 2 são apresentados os mesmos tipos de dados do gráfico 1. Porém, no eixo x, em lugar dos meses do ano, são apresentados os dias do respectivo mês, propiciando, também, uma análise comparativa. Ainda de maneira semelhante ao gráfico 1, este gráfico é seguido por uma tabela que apresenta os valores nele representados.

Os outros dois gráficos que se seguem apresentam um sumário da utilização diária do serviço (gráfico 3) e do país de origem dos clientes (gráfico 4) - durante o mês em questão.

Utilização do serviço ao longo do dia

Gráfico 3 - Utilização do serviço ao longo do dia

Utilização do serviço por país de origem dos clientes

Gráfico 4 - Utilização do serviço por país de origem dos clientes

Além desses gráficos, e suas respectivas tabelas, essa segunda página traz também outras tabelas que, embora não possuam representação gráfica, fornecem importantes informações como os browsers mais utilizados, as URL´s mais acessadas etc.

^

3. Implementação

A implementação do Webalizer é teoricamente simples, embora possa vir a se tornar um pouco complicada na prática - particularmente na instalação de seus requisitos. Todo o processo pode ser dividido nos seguintes itens:

^

3.1 Instalação dos requisitos

Conforme mencionado anteriormente, a instalação dos requisitos do Webalizer é o principal obstáculo na sua adoção como ferramenta de análise de log.

Teoricamente, isto é, de acordo o website do aplicativo, o seu único requisito é o "GD graphics library" (gd) de Tom Boutell. Parece, então, simples: basta instalar esta biblioteca e pronto! O problema é que essa biblioteca requer a "Portable Network Graphics" (libpng) e esta, por sua vez, requer a zlib. Em resumo, é preciso instalar corretamente essas três bibliotecas na seguinte ordem:

Em algumas versões do Unix, essa tarefa pode se apresentar como relativamente simples. Mas em outras versões, nem tanto. Cada versão do Unix tem suas dificuldades específicas, com as quais este artigo não se deterá por não se tratar do objetivo principal - que é o de apresentar uma visão geral da ferramenta Webalizer. Assim, gostaria apenas de ressaltar que superado este obstáculo inicial, o restante do processo torna-se simples.

Por último, devo mencionar que a URL a seguir traz um roteiro geral sobre a instalação dessas bibliotecas gráficas que são úteis também para a adoção do MRTG.

http://people.ee.ethz.ch/~oetiker/webtools/mrtg/unix-guide.html

^

3.2 Instalação do Webalizer

A instalação do Webalizer pode-se resumir, a princípio, numa seqüência do tipo:

./configure --prefix=/usr/local/webalizer
make
make install

Opcionalmente, pode-se também mudar a sua linguagem default para o português do Brasil, passando, para o comando configure, o seguinte argumento: --with-language=portuguese_brazil

Entretanto, algumas complicações podem surgirem como, por exemplo, a não detecção das bibliotecas gráficas - as quais se constituem requisitos de instalação. Assumindo-se que essas bibliotecas estejam adequadamente instaladas em seu sistema, uma maneira de solucionar esse problema é indicando-se, para o comando configure, onde as respectivas bibliotecas encontram-se instaladas - conforme o exemplo abaixo.

 ./configure --prefix=/usr/local/webalizer \ --with-gdlib=/usr/local/graficos/gd/lib 
\ --with-gd=/usr/local/graficos/gd/include \ --with-z-inc=/usr/local/graficos/zlib/include 
\ --with-zlib=/usr/local/graficos/zlib/lib \ --with-png-inc=/usr/local/graficos/libpng/include 
\ --with-png=/usr/local/graficos/libpng/lib \ --with-language=portuguese_brazil 
make make install 

^

3.3 Execução do Webalizer

A execução do Webalizer é bastante simples. Basta-se informar, minimamente:

Essas informações podem ser passadas ao Webalizer via linha de comando ou via arquivo de configuração.

A seguir, são apresentados dois exemplos de execução do Webalizer através da linha de comando.

webalizer -F clf /var/log/access_log -o /home/webalizer/data/web

webalizer -F ftp /var/log/xferlog -o /home/webalizer/data/ftp

O primeiro desses exemplos apresentados analisa o arquivo de log de um servidor Web. A opção "-F clf" é o que indica que se trata de um arquivo de log gerado por um Web Server. Quanto ao restante das opções, elas indicam, respectivamente, o nome do arquivo que está sendo lido (na opção -o) e o nome do diretório onde as páginas web, com o resultado da análise, serão criadas.

O mesmo vale para o segundo exemplo, que se difere do primeiro, fundamentalmente, pela opção "-F ftp", a qual indica que se trata de um arquivo de log gerado por um servidor de FTP.

Para se obter esse mesmo resultado, utilizando-se arquivo de configuração, bastaria editá-lo alterando as linhas com as seguintes strings:

Uma vez editado o arquivo de configuração, basta passá-lo como argumento para o Webalizer numa linha de comando semelhante a esta:

webalizer -c /etc/webalizer-http.conf

^

3.4 Visualização dos resultados

A visualização dos resultados da análise do Webalizer se faz através de um browser - o que implica a necessidade de se ter um servidor Web local, ou que as páginas web sejam transferidas para um.

Pressupondo-se que o leitor tenha conhecimentos na administração de um servidor web, este artigo não entrará nos detalhes de configuração para disponibilizar as páginas web do resultado da execução do WebAlizer - até mesmo por se tratar de uma tarefa relativamente simples para um administrador de Web Server Unix. Basta, então, ressaltar que o acesso a esses dados - via browser - pode ser restringido pela própria configuração do servidor Web como, por exemplo, através de arquivos do tipo .htaccess.

E o resultado que se obtém é semelhante àquele tratado anteriormente na seção "Relatórios do Webalizer" deste artigo.

^

4. Considerações finais

Por último, gostaria apenas de sugerir a leitura atenta do arquivo README que acompanha o código fonte da ferramenta em questão - ou que se pode ser lido na URL ftp://ftp.mrunix.net/pub/webalizer/README.

Esse arquivo explica não somente o significado de cada uma das opções do arquivo de configuração - possibilitando tanto a otimização quanto a personalização dos resultados - como também traz um procedimento para se trabalhar com rotacionamento de logs.

Com relação a esse último pormenor, o Webalizer possibilita ainda um recurso que ele chama de "Incremental Processing". Esse é um recurso que complementa a rotina de rotacionamento de logs porque permite que os resultados da análise de um último arquivo de log sejam incrementados aos resultados das análises anteriores. Assim, para analisar, por exemplo, o acesso do seu servidor nos últimos doze meses você não precisaria ter um arquivo de log correspondente, pois a análise de cada mês (se esse for o período de rotacionamento) se incrementaria a uma análise anterior. E isso é bastante útil em grandes servidores que possuem arquivos de log muito extensos.

^

Referências bibliográficas

[1] Home of The Webalizer. The Webalizer. Disponível em: <http://www.mrunix.net/webalizer/>. Acesso em mar. 2003.

[doc/unix-guide] Disponível em: <http://people.ee.ethz.ch/~oetiker/webtools/mrtg/unix-guide.html>. Acesso em mar. 2003.