Análise e visualização de arquivos de log

Por conta de alguns equipamentos remotos que gerencio comecei a fazer a coleta de logs em um único servidor Linux, o problema passou a ser como tratar e visualizar esses logs.

Algumas necessidades são cobertas por scripts que varrem os arquivos e enviam emails automáticos informando situações de maior severidade.

O que eu queria de verdade era poder analisar esses arquivos por meio de uma página onde eu pudesse fazer buscas por horário, equipamento, tipo de erro ou alguma combinação.

Para isso os arquivos deveriam ser consolidados em um banco de dados e uma interface web seria acrescentada.

A necessidade seria coberta com um conjunto de utilitários:

rsyslog – versão mais moderna do syslog original do Linux, com o recurso de acesso a um banco de dados SQL para consolidação dos dados.

MySQL – o banco de dados SQL escolhido. Poderia ser o PostgreSQL

LogAnalyzer – frontend em PHP para visualização e análise dos logs.

rsyslog – Instalação e configuração

A substituição do syslog pelo rsyslog é bem simples, basta instalar o pacote:

Comandos para CentOS e RedHat:

yum install rsyslog rsyslog-mysql

Comandos para Debian e Ubuntu:

apt-get install rsyslog rsyslog-mysql

Como e já tinha o MySQL configurado basta criar o banco de dados para o rsyslog. O rsyslog fornece um script pronto que cria um banco chamado Syslog:

# mysql < /usr/share/doc/rsyslog-mysql-3.22.1/createDB.sql

mysql> grant all on Syslog.* to syslogwriter@localhost identified by 'syslogwriter_password';
mysql> flush privileges ;

 

Como eu já usava o syslog para fazer a coleta copiei o arquivo /etc/syslog.conf para /etc/rsyslog.conf e adicionei adicionei as linhas necessárias para o rsyslog no início do arquivo:

# Use traditional timestamp format
#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Provides kernel logging support (previously done by rklogd)
$ModLoad imklog

# Provides support for local system logging (e.g. via logger command)
$ModLoad imuxsock

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# provides MySQL database support
$ModLoad ommysql

e no final do arquivo as linhas para acesso ao banco de dados:

# Logging mysql database
*.* >localhost,Syslog,syslogwriter,syslogwriter_password

Baixei e instalei o LogAnalyser

tar zxvf loganalyzer-3.6.5.tar.gz

cd loganalyzer-3.6.5
mkdir /var/www/html/syslog
cp -a src/* /var/www/html/syslog

cd /var/www/html/syslog
touch config.php
chmod 666 config.php

Abra um browser e abra a configuração inicial do LogAnalyzer:

http://localhost/loganalyzer/

Informe o nome do banco de dados, usuário e senha.

O resultado é muito bom:

Podemos selecionar por evento (ssh):

loganalyzer_1

Ter uma visão geral (observe que clicar sobre uma linha permite usar esse evento como filtro):

loganalyzer_2

E a página de estatísticas:

loganalyzer_3

Sobre androideia

Passando o tempo...

Publicado em 10/01/2016, em Uncategorized. Adicione o link aos favoritos. Deixe um comentário.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Matt's Entropy

... seeding /dev/random, one blog post at a time.

Maravilhoso Mundo Novo

De volta ao Paraíso

androideia

Idéias e Android, necessariamente não nessa ordem.

Another Airgun Blog

Idéias e Android, necessariamente não nessa ordem.

Armas de Pressão - Modificações e afins

Metade da graça em atirar está em fazer ajustes na arma.

%d blogueiros gostam disto: