Analisando os ficheiros de log das suas aplicações da internet

ArticleCategory:

Applications

AuthorImage:

[EgonWillighagen]

TranslationInfo:

original in en Logreport, Egon Willighagen

en to pt Bruno Sousa

AboutTheAuthor:

Além de trabalhar no projecto da Linuxfocus, O Egon está a trabalhar para a Fundação Logreport, que desenvolve o software lire.

Abstract:

Este artigo é o primeiro de uma série acerca do lire para analisar os ficheiros de log de aplicações servidoras de internet. Não está limitado a um serviço, por exemplo o Apache, mas é um analisador integrado para muitos serviços diferentes. Incluídos estão o DNS, o WWW e o email. Este artigo explica como iniciar-se com o lire. Discute a instalação e a configuração para gerar relatórios.

ArticleIllustration:

[illustration]

ArticleBody:

Introdução

Muitos serviços de Internet têm a possibilidade de criar logs da sua actividade. Por exemplo, o servidor Web Apache adiciona para cada pedido de uma página web uma linha de informação ao ficheiro de log. Dependendo do formato do log a linha inclui informação como a página que foi pedida, o tamanho da página, qual o web browser utilizado, e muito mais. No caso do vosso servidor de email, um ficheiro log semelhante também é criado. Contem o endereço email de quem enviou o email, quem o recebeu, o seu tamanho, etc. De facto todos os serviços de internet têm esta capacidade.

Estes ficheiros de log contêm uma enorme quantidade de informação, mas o formato é difícil de interpretar à mão. Você precisa de um utilitário que faça resumos dos dados para o ajudar a analisar o conteúdo. No caso de serviços www isto converte para listas TopX de web browsers, domínios e plataformas e um gráfico de pedidos por tempo. Muitos contadores de entidades terceiras mostram este tipo de informação.

Para a maioria dos tipos de ficheiros de log, utilitários estão disponíveis para analisar o conteúdo. O lire é um dos tais utilitários. Mas o lire é diferente de muitos outros utilitários. O lire é um sistema integrado que é capaz de analisar não um só tipo de serviços internet, mas muitos. E os relatórios que resumem a informação interessante a partir dos ficheiros log são incorporados. Você pode adicionar tipos de relatórios personalizados você mesmo.

O Lire pode ser usado de modos diferentes. Você pode corrê-lo a partir da linha de comandos ou ter um trabalho na crontab instalado que lhe envia os resumos por email. No caso do formulário pode escolher o formato de saída para o relatório. Os correntes formatos de saída incluem pleno texto, HTML, DocBook, PDF, e LOGML. No caso de ter um trabalho na crontab o único formato, até este momento é o pleno texto.

Presentemente, os ficheiros de log das seguintes aplicações podem ser analisados:

O lire está em desenvolvimento, correntemente com três pessoas pagas a trabalhar nele. O Suporte é uma das suas tarefas, por isso se tiver alguma necessidade especial (novos serviços por exemplo) ou questões de suporte geral, deixe por favor, uma mensagem em LogReport's SourceForge site.

Instalação

As versões recentes do lire podem ser obtidas do website da SourceForge . Estão pacotes disponíveis em tar.gz, RPM ou Debian. O Debian Woody e Sid incluem também o lire. A instalação a partir do pacote binário trabalha do modo habitual. A instalação a partir do pacote tar.gz também trabalha como esperado:
./configure
make
make install

O programa de configuração tem opções:

opção descrição
--prefix=/some/dir Define o directório raiz para a instalação. Por defeito é /usr/local.
--with-perl5libdir=/some/dir Define o directório onde os módulos em Perl do lire são instalados. Por Defeito é $prefix/share/perl5.
--with-sgmldir=/some/dir Caminho para o directório de instalação SGML. Os Valores por defeito são $prefix/lib/sgml e $prefix/share/sgml.

Se planeia fazer uso dos formatos de saída para além do de pleno texto, você precisa de utilitários XML como as folhas de estilo do DocBook XML, do Jade e processador XML como o Xalan ou Sablotron. Com a terceira opção do programa de configuração pode dizer onde os ficheiros SGML estão instalados.

O Lire como um trabalho do cron

Depois do lire estar instalado, você pode utilizar o único programa lr_log2report. Mas se planeia utilizar o lire como um trabalho do cron, precisa de o configurar primeiro. Isto é feito com o programa lr_config. As questões são dadas com comentários, uma a uma:

Iniciou a script com este utilizador ?

A script precisa de correr com um utilizador que seja capaz de ler os ficheiros log. Os ficheiros log muitas vezes são só lidos pelo root e os utilizadores no grupo adm. Verifique se o utilizador é capaz de ler os ficheiros log. Um exemplo:

~> cd /var/log
/var/log> ls -al apache/access.combined.log
-rw-r----- 1 root root 70902 Jul 27 13:23 apache/access.combined.log
/var/log> whoami
egonw
/var/log> groups
egonw adm dialout

Neste exemplo o utilizador corrente egonw não consegue ler o ficheiro de log do Apache. Somente o root consegue ler o ficheiro. O utilizador é, contudo, membro do grupo adm, então podemos resolver o problema alterando o grupo root do ficheiro de log:

/var/log# whoami
root
/var/log# chgrp adm apache/access.combined.log
/var/log# ls -al apache/access.combined.log
-rw-r--r-- 1 root adm 70902 Jul 27 13:23 apache/access.combined.log

Os ficheiros temporários, por defeito, não são guardados. Deseja conservá-los?

Para um uso normal deve dizer que não.

Planeia utilizar um atendedor online?

O atendedor online é um utilitário que torna possível o envio do ficheiro de log por email para este atendedor e obter dele um relatório. Isto é útil para administradores de redes grandes. Para o uso normal deve dizer que não.

Por defeito, os ficheiros temporários são guardados em ~/tmp. Quer alterar isto?

Por defeito os ficheiros temporários são mantidos no seu directório de trabalho. Pode alterar esta definição respondendo que "sim" e dando o directório onde quer que sejam escritos. Tenha em mente que tem de ser um directório que o utilizador a correr o lire tenha permissões de escrita.

Quer enviar um renúncia com os relatórios gerados?

Se envia os relatórios para outros, pode querer adicionar uma renúncia, responda "sim" a esta questão. Se os relatórios são para uso interno, pode responder "não".

Por defeito, as mensagens de estado e de erro são enviadas para a stderr. Quer alterar isto para o syslog?

Respondendo "sim" a esta questão, pode escolher em ter mensagens de erro e de informação enviadas pelo logger(1) e não pelo standard error (STDERR). Tem de ter o logger(1) do syslog instalado.

Por defeito, as mensagens de informação e debug são apagadas. Quer correr o sistema no modo de debug? Para um uso normal, deve responder que não.

Deseja usar as mesmas definições para todos os serviços?

Para cada serviço pode definir um endereço de email e assunto separadamente. Por conveniência pode definir uma definição global. Responda "sim" para definir isto por defeito:

Gostaria de usar um endereço para quem por defeito?

Se responder "sim", o endereço de email será utilizado para lhe serem enviados os relatórios. Pode ser redefinido para alguns serviços específicos.

Gostaria de definir um cabeçalho de assunto para o mail gerado?

Se responder "sim", você fornece um modelo a partir do qual os assuntos do email são feitos. Por defeito é algo parecido com: "[LogReport] www / apache report" para os relatórios dos ficheiros log do Apache.

Quais os serviços estão a correr?

Todas as questões seguintes pedem-lhe acerca dos serviços que quer que o log reporte. As questões são todas semelhantes, e não será discutida uma a uma. Mas para cada serviço é algo parecido com:

Tem nesta máquina ficheiros log ***** recolhidos que gostaria que fossem processados?

Os programas que o lire suporta estão agrupados nos chamados super serviços. A primeira questão para cada super serviço é sempre se está a recolher os ficheiros log com algum programa e que deseja que o lire se reporte acerca de. Se responder "não", evitará futuras questões acerca deste super-serviço. Os super serviços que o lire suporta são dados na introdução deste artigo. Existe um que não foi mencionado: o apachemodgzip. Este lida com os ficheiros log acerca do Apache a correr em modo compresso.

O programa de configuração pedir-lhe-á depois questões acerca dos serviços corridos um a um. Para o email, por exemplo, estes serviços podem ser exim, postfix, qmail, sendmail. Para cada programa o lr_config pede onde o lire pode encontrar os ficheiros log. Estes podem estar compressos, porque o lire pedir-lhe-á se quer especificar o programa que deve ler os ficheiros log: zcat ou gunzip -c podem ser usados.

São alguns ficheiros de log ***** alternados semanalmente?

Se responder "sim" os trabalhos configurados na crontab do lire serão configurados para correr uma vez por semana. A outra opção é diariamente.

Se todas as questões foram respondidas, escreve todas as definições para os ficheiros de configuração (*/defaults.local). Estes ficheiros são utilizados trabalho do lire no cron. Infelizmente, em trabalho do cron não é activado automaticamente. Tem de o fazer você mesmo, digitando a linha:

~> { echo '0 10 * * * /usr/local/logreport/bin/lr_cron daily'; 
     echo '0 10 * * 0 /usr/local/logreport/bin/lr_cron weekly'; } | crontab -

Uma vez activado como este, os relatório(s) serão enviados numa base diária/semanal. Pode afinar a configuração, editando os ficheiros de configuração mencionados acima.

O Lire como um utilitário único.

O lire pode ser utilizado como um utilitário único tendo a vantagem de poder escolher outros formatos de output e a possibilidade de incluir figuras. O utilitário lr_log2report é corrido por um segundo programa do lire chamado lr_run:
~> lr_run lr_log2report /tmp/err www apache combined < 
   /var/log/apache/access.combined.log > apache.txt

O programa lr_log2report tem de ter pelo menos três argumentos. O primeiro é um ficheiro para os quais os erros são redireccionados. Neste caso o /tmp/err. O segundo argumento é o super serviço do ficheiro de log. Existem correntemente três super serviços: www, dns e email. O terceiro argumento requerido é o tipo de serviço do ficheiro de log. Neste caso é um ficheiro Apache combinado, então o serviço é o apache. Existe um argumento adicional que é uma flag que diz que diz que o ficheiro de log do apache utiliza um formato "combinado". Como a maioria dos programas lire pode obter informação adicional com man:

~> man lr_log2report

Para alterar o formato de saída pode utilizar a opção "-i <format>". Os formatos presentemente válidos são txt (defeito), logml (website da LogML ), DocBook XML (Repositório Aberto da DocBook), HTML e PDF. Os dois últimos precisam de folhas de estilo do DocBook e Jade instalados. Todos os formatos, há excepção do pleno texto, precisam também do processador XSLT como o xsltproc da Gnome. Por exemplo para gerar um PDF:

~> lr_run lr_log2report -o pdf /tmp/err www apache combined 
   < /var/log/apache/access.combined.log > apache.pdf

Sumário

Este artigo introduziu, brevemente, o projecto lire e mostrou como instalar e configurar o software. O próximo artigo desta série descreverá o software e o modo de o usar. Por agora pode encontrar mais informação no nosso web site: http://www.logreport.org/.

Se quer entrar em contacto connosco, pode encontrar-nos melhor no IRC. Os programadores podem ser encontrados no canal #logreport em OpenProjects.org IRC network. Questões, comentários e pedidos de suporte são bem-vindos.