Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

22
Rsyslog - Gerenciamento centralizado de logs Autor: Bill Carlos Cabral <cabral.bill at gmail.com> Data: 02/07/2012 Introdução O principal objetivo deste artigo é a configuração do Rsyslog de forma que máquinas distintas com sistemas operacionais distintos enviem seus logs do sistema para um servidor centralizado através da rede. Logs são arquivos de texto gerados pelo sistema e que podem ajudar a descobrir problemas na execução de softwares, problemas de hardware, tentativas de invasão, acessos indevidos, entre outras coisas. É muito importante manter estes arquivos seguros e intactos. Em uma auditoria de sistemas, estes logs poderão e serão bastante importantes, portanto, a sua integridade e disponibilidade são importantíssimas para um administrador de rede. Com a atual abrangência das redes e de suas complexidades, a administração tornou-se uma tarefa que exige o máximo de recursos que sejam disponibilizados para que torne mais fácil esta tarefa. A utilização de ferramentas que unifiquem a administração viabiliza a administração de redes complexas. Utilizando o Rsyslog, que tem suporte à maioria dos sistemas operacionais utilizados no mercado, a centralização dos logs torna-se possível e de fácil configuração, com grande capacidade de configuração e customização de acordo com a necessidade, sem causar impacto na rede. O que é o Rsyslog O Rsyslog é um syslog com foco na segurança e confiabilidade, oferecendo suporte para várias operações como bufferização sob demanda, syslog confiável para TCP, SSL e TLS, gravando em diversos banco de dados diferentes (MySQL, PostgreSQL, Oracle,...), e-mails de alerta, formatos de saída totalmente configuráveis, sendo possível filtrar qualquer parte da mensagem, compressão de mensagem, conversão de arquivos textos para o Rsyslog. Existem versões avançadas que permitem a customização para o ambiente corporativo, como proteção por criptografia. Um ponto forte é a facilidade de configuração para usuários novatos e inexperientes. O objetivo do projeto Rsyslog é fornecer um daemon syslog com características mais ricas e confiáveis, mantendo altas as suas capacidades de reposição de estoque syslogd. Por ser "confiável", isto significa que possui suporte para modos de transmissão confiáveis como TCP ou RFC 3195 (syslog-confiável). O Rsyslog também trabalha muito bem com infraestrutura de logs centralizados, Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669 1 de 22 22/4/2013 17:58

Transcript of Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Page 1: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Rsyslog - Gerenciamento centralizado de logs

Autor: Bill Carlos Cabral <cabral.bill at gmail.com>Data: 02/07/2012

Introdução

O principal objetivo deste artigo é a configuração do Rsyslog de forma que máquinas distintas com sistemasoperacionais distintos enviem seus logs do sistema para um servidor centralizado através da rede.

Logs são arquivos de texto gerados pelo sistema e que podem ajudar a descobrir problemas na execução desoftwares, problemas de hardware, tentativas de invasão, acessos indevidos, entre outras coisas.

É muito importante manter estes arquivos seguros e intactos. Em uma auditoria de sistemas, estes logs poderãoe serão bastante importantes, portanto, a sua integridade e disponibilidade são importantíssimas para umadministrador de rede.

Com a atual abrangência das redes e de suas complexidades, a administração tornou-se uma tarefa que exige omáximo de recursos que sejam disponibilizados para que torne mais fácil esta tarefa.

A utilização de ferramentas que unifiquem a administração viabiliza a administração de redes complexas.

Utilizando o Rsyslog, que tem suporte à maioria dos sistemas operacionais utilizados no mercado, acentralização dos logs torna-se possível e de fácil configuração, com grande capacidade de configuração ecustomização de acordo com a necessidade, sem causar impacto na rede.

O que é o RsyslogO Rsyslog é um syslog com foco na segurança e confiabilidade, oferecendo suporte para várias operaçõescomo bufferização sob demanda, syslog confiável para TCP, SSL e TLS, gravando em diversos banco dedados diferentes (MySQL, PostgreSQL, Oracle,...), e-mails de alerta, formatos de saída totalmenteconfiguráveis, sendo possível filtrar qualquer parte da mensagem, compressão de mensagem, conversão dearquivos textos para o Rsyslog.

Existem versões avançadas que permitem a customização para o ambiente corporativo, como proteção porcriptografia. Um ponto forte é a facilidade de configuração para usuários novatos e inexperientes.

O objetivo do projeto Rsyslog é fornecer um daemon syslog com características mais ricas e confiáveis,mantendo altas as suas capacidades de reposição de estoque syslogd.

Por ser "confiável", isto significa que possui suporte para modos de transmissão confiáveis como TCP ou RFC3195 (syslog-confiável). O Rsyslog também trabalha muito bem com infraestrutura de logs centralizados,

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

1 de 22 22/4/2013 17:58

Page 2: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

implementando criptografia no tráfego, verificação na perda de dados e gerenciamento de banco de dados.

Como funcionaÉ necessário que se instale o Rsyslog em todos os nós que deverão ser monitorados e no servidor central.

O Rsyslog funciona tanto em GNU/Linux quanto em Windows, bastando fazer a instalação dos módulospertinentes a cada distribuição e configurar de acordo com a necessidade e da disposição da rede.

Uma vez configurado o servidor e o cliente, o agente do cliente irá comunicar-se com o agente do servidorcentral.

O banco de dados no qual o Rsyslog do servidor central irá inserir os logs poderá ser qualquer um, sendo que outilizado neste cenário será o PostgreSQL 9.1.

Instalação e configuração

Instalação do RsyslogEsta instalação será dirigida à distribuição CentOS 6.0, via YUM.

Antes de instalar o Rsyslog, deverá ser verificado se há o serviço syslog. Caso haja, o syslog deverá serdesinstalado para que o Rsyslog seja instalado.

Para instalar o Rsyslog:

# yum install rsyslog

Com o serviço do Rsyslog instalado, agora será necessário configurar para iniciar a utilização.

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

2 de 22 22/4/2013 17:58

Page 3: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Configuração do servidorRsyslog é configurado através do arquivo rsyslog.conf, normalmente encontrado em /etc.

Mas, antes de inciar a configuração do arquivo rsyslog.conf, que será direcionada a um banco de dados, seránecessário que haja um banco de dados instalado e ativo, para que seja criado o banco e suas tabelas default.

O script de criação do banco de dados original, que vem no pacote durante a instalação, está disponível noarquivo /usr/share/doc/rsyslog-versão/createDB.sql:

CREATE DATABASE 'Syslog' WITH ENCODING 'SQL_ASCII';

\c Syslog;

CREATE TABLE SystemEvents

(

ID serial not null primary key,

CustomerID bigint,

ReceivedAt timestamp without time zone NULL,

DeviceReportedTime timestamp without time zone NULL,

Facility smallint NULL,

Priority smallint NULL,

FromHost varchar(60) NULL,

Message text,

NTSeverity int NULL,

Importance int NULL,

EventSource varchar(60),

EventUser varchar(60) NULL,

EventCategory int NULL,

EventID int NULL,

EventBinaryData text NULL,

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

3 de 22 22/4/2013 17:58

Page 4: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

MaxAvailable int NULL,

CurrUsage int NULL,

MinUsage int NULL,

MaxUsage int NULL,

InfoUnitID int NULL ,

SysLogTag varchar(60),

EventLogType varchar(60),

GenericFileName VarChar(60),

SystemID int NULL

);

CREATE TABLE SystemEventsProperties

( ID serial not null primary key,

SystemEventID int NULL ,

ParamName varchar(255) NULL ,

ParamValue text NULL

);

Este arquivo está na linguagem SQL padrão, logo, é compatível com qualquer banco que trabalhe com essalinguagem.

* Um ponto importante a ressaltar é quanto a codificação do banco utilizado pelo Rsyslog, que é por padrãoSQL_ASCIII.

Por padrão, de instalação do PostgreSQL, caso não seja setado uma codificação padrão, a "LATIN1" éconsiderada default por conter todos os caracteres das línguas européias (o português está incluso nessegrupo), mas a maioria dos bancos utilizam "UTF-8", pela interoperabilidade dos símbolos (podendo contercaracteres de todas línguas).

Ao tentar criar um banco na codificação "SQL_ASCII" numa instalação que já possui um padrão decodificação diferente dessa, apresentará erros.

Para sanar este erro, basta que crie o banco "SYSLOG" (conforme arquivo de criação do banco createDB.sql)em outra template que não a principal (onde foi criado o banco postgres).

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

4 de 22 22/4/2013 17:58

Page 5: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Na instalação, por default, são criados mais duas templates: a "template0" e a "template1". Crie o banco emuma delas.

A modificação sugerida para o PostgreSQL 9.1 segue abaixo:

CREATE DATABASE 'Syslog' WITH ENCODING 'SQL_ASCII' TEMPLATE=template0;

\c Syslog;

CREATE TABLE SystemEvents

(

ID serial not null primary key,

CustomerID bigint,

ReceivedAt timestamp without time zone NULL,

DeviceReportedTime timestamp without time zone NULL,

Facility smallint NULL,

Priority smallint NULL,

FromHost varchar(60) NULL,

Message text,

NTSeverity int NULL,

Importance int NULL,

EventSource varchar(60),

EventUser varchar(60) NULL,

EventCategory int NULL,

EventID int NULL,

EventBinaryData text NULL,

MaxAvailable int NULL,

CurrUsage int NULL,

MinUsage int NULL,

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

5 de 22 22/4/2013 17:58

Page 6: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

MaxUsage int NULL,

InfoUnitID int NULL ,

SysLogTag varchar(60),

EventLogType varchar(60),

GenericFileName VarChar(60),

SystemID int NULL

);

CREATE TABLE SystemEventsProperties

(

ID serial not null primary key,

SystemEventID int NULL ,

ParamName varchar(255) NULL ,

ParamValue text NULL

);

Após criar o banco e as tabelas, algumas configurações deverão ser feitas no arquivo rsyslog.conf.Inicialmente iremos habilitar o suporte a banco de dados.

Suporte de banco de dados em Rsyslog é integrado por módulos (plugin) carregáveis. Para usar afuncionalidade de banco de dados, o plugin do banco de dados deve ser habilitado no arquivo de configuraçãoantes que a primeira tabela do banco de dados seja usada.

Isto é feito através da configuração da diretiva abaixo, no inicio do arquivo de configuração:

$ModLoad ompgsql

Neste caso estaremos habilitando o suporte ao banco de dados PostgreSQL, escolhido como padrão. Váriosbancos de dados são suportados. A lista e as especificações estão disponíveis no site:

www.rsyslog.com

Em seguida nós precisamos dizer ao Rsyslogd para gravar dados no banco de dados. Como usamos o esquemapadrão, não precisamos definir um modelo para isso.

Podemos usar a hardcoded (rsyslogd lida com o modelo adequado de um link). Então, tudo o que precisamosfazer, por exemplo, para o PostgreSQL, é adicionar uma linha simples seletor para /etc/rsyslog.conf:

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

6 de 22 22/4/2013 17:58

Page 7: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

*.* :ompgsql:database-server,database-name,database-userid,database-password

Onde:

database-server : É o nome ou o endereço IP do servidor;database-name : É o nome do banco onde as tabelas foram criadas;database-userid : É o nome do usuário que tem acesso ao banco;database-password : É é a senha do usuário.

Com estas configurações feitas, basta iniciar o serviço do Rsyslog e verificar a entrada de dados na tabela dobanco de dados.

Toda esta entrada de dados pode ser configurada de acordo com a necessidade e do ambiente em questão.Neste caso, os logs serão originados de dois sistemas operacionais distintos, sendo um Windows Server 2003 eum GNU/Linux Red Hat 5.5 Enterprise Edition.

Os principais logs do GNU/Linux serão enviados ao servidor centralizado, como o /var/log/messages, e outrosespecíficos como do DHCP, Squid e Apache.

No Windows serão enviados os logs do "System Events Reports".

Configurações de arquivo e cliente

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

7 de 22 22/4/2013 17:58

Page 8: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Configuração do arquivo /etc/rsyslog.confA customização para a coleta dos dados específicos são inseridas através de regras no rsyslog.conf. Porexemplo, para coletar os dados TCP da máquina, basta ativar os módulos de entrada.

Os módulos de entrada são utilizados para reunir mensagens de várias fontes. Eles interagem com os geradoresde mensagens. Já os módulos do analisador são utilizados para analisar o conteúdo da mensagem, uma vez quea mensagem foi recebida.

Eles podem ser usados para processar formatos de mensagens personalizadas e invalidamente formatadas.Existem ainda os módulos de modificação de mensagens que são usados para alterar o conteúdo dasmensagens que estão sendo processadas.

Eles podem ser implementados utilizando um módulo de saída ou da interface do módulo analisador. Do pontode vista do núcleo Rsyslog, eles realmente são módulos de saída, ou parser, e é a sua implementação que ostornam especiais.

Atualmente existe apenas um conjunto limitado de tais módulos, mas os novos podem ser escritos com osmétodos que o motor melhor lhe proporcione. Eles podem ser utilizados, por exemplo, a:

Anonimizar conteúdo da mensagem;Adicionar conteúdo dinamicamente computada a mensagem (campos).

Módulos de modificação de mensagens geralmente são escritos para uma tarefa específica e, portanto,normalmente não são genéricos o suficiente para ser reutilizados.

No entanto, o código do módulo existente é provavelmente uma excelente base de partida para escrever umnovo módulo, que pode ser escrito por terceiros também.

Abaixo segue o código do rsyslog.conf que será utilizado no servidor onde os logs serão centralizados:

#/etc/rsyslog.conf

$ModLoad imuxsock.so$ModLoad imklog.so$ModLoad imtcp.so$InputTCPServerRun 514$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat$ModLoad ompgsql.so

*.* :ompgsql:127.0.0.1,syslog,postgres,postgres

*.info;mail.none;authpriv.none;cron.none /var/log/messagesauthpriv.* /var/log/securemail.* /var/log/maillogcron.* /var/log/cron*.emerg *

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

8 de 22 22/4/2013 17:58

Page 9: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

uucp,news.crit /var/log/ spoolerlocal7.* /var/log/boot.log

Nesse arquivo, cada linha tem a seguinte função:

$MoadLoad imuxsock.so : Fornece a capacidade para aceitar mensagens de syslog via sockets locaisUnix. Mais importante, este é o mecanismo pelo qual o syslog envia mensagens syslog rsyslogd. Então,você precisa ter este módulo carregado para ler o socket de log do sistema e ser capaz de processar asmensagens de log de aplicativos em execução no sistema local.$MoadLoad imklog.so : Lê mensagens de log do kernel e as envia para o motor de syslog.$MoadLoad imtcp.so : Habilita a conexão TCP. Necessário para possibilitar que hosts remotos seconectem para centralizar os logs.$InputTCPServerRun 514 : Declara a porta pelo qual o servidor irá escutar os rsyslogs remotos.$ActionFileDefaultTemplate RSYSLOG_FileFormat : Define um novo modelo padrão para ações dearquivo. É um formato de arquivo de log de estilo moderno semelhante ao TraditionalFileFormat, mascom alta precisão timestamps e informações de fuso horário.$ModLoad ompgsql.so : Carrega o módulo responsável pela conexão com o banco de dadosPostgreSQL.*.* :ompgsql:127.0.0.1,syslog,postgres,postgres : String de conexão com o banco de dados.

Os demais dados do arquivo são as informações sobre o que selecionar no log e sua localização.

É possível que sejam customizadas essas entradas de acordo com a necessidade.

Instalação e configuração do clientePara que haja comunicação entre o servidor onde será centralizado os logs e os clientes que fornecerão esteslogs, é necessário que seja instalado o cliente do Rsyslog nestas máquinas, além do servidor centralizado econfigurá-lo para receber estas conexões.

Tanto para o GNU/Linux quanto para o Windows, faremos a configuração dos seus clientes. Iniciando peloGNU/Linux.

Instalação dos clientes

Instalação do cliente no GNU/LinuxPara a instalação do cliente no GNU/Linux, serão os mesmos passos que foram utilizados na instalação doRsyslog no servidor central, via YUM, conforme já descrito anteriormente.

A diferenciação se dará no arquivo de configuração rsyslog.conf, que terá algumas configuraçõesdiferenciadas, conforme mostrado abaixo:

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

9 de 22 22/4/2013 17:58

Page 10: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

# /etc/rsyslog.conf

*.* @@10.0.0.1:514$ModLoad imuxsock.so # provides support for local system logging (e.g. via logger command)$ModLoad imklog.so # provides kernel logging support (previously done by rklogd)$ModLoad imtcp.so$InputTCPServerRun 514$ModLoad ompgsql.so$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

*.info;mail.none;authpriv.none;cron.none /var/log/messages*.* /var/log/yum.log*.* /var/log/anaconda.log*.* /var/log/boot.log*.* /var/log/squid/access.log*.* /usr/lib/rpm/rpm.log

A única diferença no arquivo de log do servidor para esse cliente, é a seguinte linha na configuração doarquivo rsyslog.conf:

*.* @@10.0.0.1:514

Onde as " @@ ", significam que o protocolo é TCP, depois é informado o IP e por último, a porta no qual oservidor estará escutando.

Basta (re)iniciar o serviço e verificar no servidor se os logs estão chegando.

Instalação do cliente no WindowsPara a configuração de um cliente Windows que irá conectar-se no servidor centralizado, o software clienteRsyslog deverá ser baixado na seguinte URL:

http://www.rsyslog.com/windows-agent/windows-agent-download/

Depois de baixado na maquina Windows, iniciaremos executando o arquivo rsyslogwa.exe.

A instalação é normal de Windows (next, next, finish). Após terminado esta instalação, no menu iniciar terá oRsyslog Windows Agent Configuration.

Clique nele para que a tela abaixo seja apresentada.

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

10 de 22 22/4/2013 17:58

Page 11: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Nesta tela começaremos criando uma regra onde vamos definir um novo conjunto de regras. Clique com obotão direito do mouse em cima de Rules. Um menu pop-up irá aparecer.

A partir deste menu, selecione: Add rules

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

11 de 22 22/4/2013 17:58

Page 12: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Digite um nome para as regras que estaremos criando na tag: Name of RuleSet

Selecione apenas: Forward Syslog

Além disso, deixe a opção marcada: create a Rule for each of the following action

Clique em "Next". Você verá uma página de confirmação. Clique em "Concluir" para criar o conjunto deregras.

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

12 de 22 22/4/2013 17:58

Page 13: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

A nova Rule Set com o nome digitado está aparecendo. Clique no simbolo para expandi-lo na árvore até que onível de ação do "Foward Syslog" apareça.

Clique nela para aparecer as configurações, conforme figura abaixo:

Configure o "Forward Syslog" inserindo o IP do seu Servidor Central Rsyslog alterando a porta para a que foiconfigurada no servidor, sabendo que a porta padrão é a "514".

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

13 de 22 22/4/2013 17:58

Page 14: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Você também pode alterar o tipo de protocolo TCP, de acordo com o configurado com no seu servidor.

ATENÇÃO: O Rsyslog agente do Windows e seu servidor Rsyslog devem usar a mesma porta e o mesmoprotocolo. Altere o "Message Format", clicando no menu suspenso para escolher: Use CEE enhanced SyslogFormat

Agora clique em "Save". Esta primeira parte está pronta. Agora configuraremos a parte do EventLog MonitorService. Iniciaremos clicando com o botão direito do mouse em:

Services1.Selecione: Add Services2.Depois: Event Log Monitor V23.

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

14 de 22 22/4/2013 17:58

Page 15: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Novamente você precisará digitar um nome ou deixar o padrão. Deixe o campo "Use default settings"selecionada e clique em "Finish".

Verá que tem um serviço recém-criado sob os "services" como parte da exibição de árvore. Para verificar seusparâmetros, clique em cima dele:

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

15 de 22 22/4/2013 17:58

Page 16: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Como você pode ver, o serviço verifica automaticamente todos os EventLogs presentes no Windows. Agoravocê pode selecionar ou desativar determinados registros ou alterar algumas de suas propriedades.

Note que o conjunto de regras "Syslog Forward" foi automaticamente atribuído como o conjunto de regraspara ser usadas. Agora basta inciar o serviço e começar a monitorar através do servidor centralizado.

Com esta configuração, o cliente do Windows está pronto e, possivelmente, inserindo os logs no servidorcentralizado.

Instalação do LogAnalyzer

Para visualizar estes logs de uma maneira mais didática, iremos utilizar o LogAnalyser.

O LogAnalyser é um front-end free para Syslog-Rsyslog de fácil compreensão e manuseio. É um aplicativogratuito de fonte GLP aberto, que foi desenvolvido, em sua maioria, em PHP.

Sua integração com a fonte de dados tanto pode ser um banco quanto o próprio arquivo texto gerado peloRsyslog.

Para instalar o LogAnalyser você precisará ter instalado os seguintes módulos no servidor centralizado de logs,seja ele Windows ou GNU/Linux:

Apache ou IIS Webserver

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

16 de 22 22/4/2013 17:58

Page 17: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

PHP5

Para iniciar precisaremos baixar LogAnalyzer. Escolha a versão mais recente através do site:

http://loganalyzer.adiscon.com/downloads

Será baixado um arquivo do tipo ".tar.gz". Copie toda a pasta "src" e os arquivos configure.sh e secure.sh dapasta "contrib", que estavam dentro do diretório recém descompactado, para o diretório padrão do Apache oudo IIS.

Neste caso tomaremos como padrão o Apache no servidor GNU/Linux, logo o arquivo deverá serdescompactado no diretório /var/www/html.

Agora será necessário dar as permissões necessárias na pasta e nos arquivos contidos dentro dela. Defina osinalizador de execução para eles:

# chmod + x configure.sh secure.sh

Execute:

# ./configure.sh

Que criará um config.php em branco, e também irá definir o acesso de escrita a todos a ele. Poderá fazer issomanualmente, se quiser, configurando a permissão 777 neste arquivo.

Para iniciar a instalação LogAnalyzer, abra o seguinte link no browser que estará apontado para o script deinstalação:

http://localhost/install.php

O script de instalação irá solicitar configurações para a instalação do LogAnalyzer, basta seguir as instruções.

Iniciado a instalação do LogAnalyser, uma mensagem de boas-vindas será apresentada. Esta é a primeirapágina da instalação. Diz-lhe apenas, que antes de instalar, algumas diretivas de permissão de arquivos serãoverificados.

Basta clicar em "Next" para iniciar o processo.

Verifique as permissões do arquivo. Aqui você vai ver, se o config.php pode ser escrito ou não. Se não podeser escrito, você terá que aplicar as permissões necessárias manualmente (chmod 777 config.php) e clicar em"Next".

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

17 de 22 22/4/2013 17:58

Page 18: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Algumas opções básicas deverão ser definidas aqui nesta tela:

Number of syslog messages per page = 50 (default)

Este é o número de mensagens syslog indicadas em cada página. Você pode aumentar o valor oudiminuir o valor de acordo com a necessidade, vale lembrar que quanto maior o número, mais lentopoderá ficar.

Message character limit for the main view = 80 (default)

Defina o número de caracteres por mensagem, que será mostrado na última coluna da janela principal.Mensagens completas podem ser revistas ao passar o mouse sobre elas. Muitas pessoas preferem usaruma configuração de "0", para que toda a mensagem seja exibida.

Character display limit for all string type fields = 30 (default)

Limite de caracteres para exibição. O default é pequeno, porém agiliza no tempo de retorno do sistema.

Show message details popup (default yes) = yes (default)

Muitas pessoas acham que os pop-ups são intrusivos e preferem desativá-los. Use "no" neste caso.

Automatically resolved IP Adrress (inline) = yes (default)

Resolve os IPs em nomes durante a visualização dos logs. Não é recomendado, pois poderá abaixar orendimento da aplicação.

Na próxima tela teremos o passo mais importante, onde será configurada a fonte de dados, onde estão

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

18 de 22 22/4/2013 17:58

Page 19: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

armazenados todos os dados do Rsyslog.

Primeiramente terá que ser escolhido um "Name of the Source" (Nome da Fonte) e um "Source Type" (Tipode Origem).

O nome será escolhido por você e este será exibido no menu drop-down com no qual você escolherá a suafonte de dados Rsyslog ativa.

O "Source Type" (Tipo de Fonte) pode ser um arquivo, um banco de dados MySQL ou o PHP PDO quesuporta tipos de dados diferentes como MS SQL, PostgreSQL, ODBC, Oracle ou IBM DB2 mesmo.

Neste caso utilizaremos a última opção, onde será configurado o banco PostgreSQL 9.1.

Database Storage Engine = MySQL Server (default)

Escolha o tipo do banco de dados você está usando. Estes bancos são suportados:MySQL ServerMicrosoft SQL ServerODBC Conexão Banco de DadosPostgreSQLOracle Call InterfaceIBM DB2Firebird / Interbase 6IBM Informix Dynamic ServerSQLite 2

E a configuração do banco:Table Type = monitorware (default)

Este é o layout da tabela. Atualmente, você pode usar "monitorware" ou "syslogng"

*Database Host = localhost (default)

Este é o nome da maquina ou IP de onde o banco de dados está localizado. Por padrão élocalhost. Você pode especificar qualquer outro host, de acordo com o seu cenário.

Database Name = loganalyzer (default)

O nome do banco de dados que você configurou no banco.

Database Tablename = systemevents (default)

Este é o nome da tabela em que os dados são armazenados. O tablename padrão corresponde àstabelas criadas com a Linha "Table Type".

Database User = user (default)

O nome de usuário do banco de dados.

Database Password = não definido por padrão

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

19 de 22 22/4/2013 17:58

Page 20: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

A senha do usuário.

Enable Row Counting = No (default)

Se configurado para "Yes", a quantidade de linhas na tabela serão contados com cada consulta,mostrando os registros totais para a sua pesquisa. Poderá ter um grande impacto em seu sistemaao utilizar um banco de dados muito grande.

Se configurado para "No", as linhas não serão contadas, proporcionando um desempenho melhor.

Se tudo ocorreu bem, você deve ver mensagens do Rsyslog já após a sua instalação LogAnalyzer. Porsegurança você pode remover o script install.php.

Conforme figura acima, os dados que já foram inseridos no banco de dados podem ser visualizados pelobrowser através do endereço do IP, ou localmente através do localhost.

Detalhando uma das mensagem acima, teremos a seguinte tela:

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

20 de 22 22/4/2013 17:58

Page 21: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Acima, temos os seguintes campos:uiD - ID da mensagem conforme sua inserção no banco;Date - data e hora do evento;Host - nome da maquina onde o evento ocorreu;Severity - tipo de prioridade da mensagem;Syslogtag - tag que identifica qual o serviço que gerou o evento;Checksum - tag utilizada quando o rsyslog é utilizado com SSL/TLS;Message - conteúdo da mensagem com os dados do evento.MessagetypeFacility

Neste evento, podemos perceber alguns dados interessantes: por ser um evento do tipo DHCPACK(onde o servidor confirma a alocação do endereço IP ao cliente), o endereço MAC da máquina querecebeu o IP e o endereço IP que foi atribuído. Isto pode permitir uma rastreabilidade na rede.

Conclusão

Com o Rsyslog, torna-se possível o gerenciamento centralizado de logs, independentemente do sistemaoperacional, permitindo a visualização dos eventos de todos os pontos monitorados de forma que um relatóriopode ser emitido demostrando um cenário geral da rede para um certo tipo de evento, ou até mesmo de todosos eventos, procurando o de maior ocorrência para verificar o motivo de tanta repetição.

Um fator positivo é a possibilidade de utilização de um banco de dados para armazenamento centralizadodestes eventos (logs). Independente de qual seja o banco, o fato de estar inserido em um SGBD (sistema degerenciamento de banco de dados) permite uma integração com outras ferramentas e até mesmo, outrossistemas, além de possibilitar ações que garantirão a alta disponibilidade desses dados, como o backup eredundância, que já não é tão funcional como o backup de um arquivo e redundância do mesmo.

Outro ponto positivo é a interoperabilidade: a maioria dos bancos mais usados no mercado são suportadosnessa ferramenta, que garante a cobertura de mais de 90%.

Por ter a licença do tipo GPLv3, há uma liberdade para se trabalhar com esta ferramenta adequando-a, dentrodos termos da licença, à necessidade.

Qualquer um pode desenvolver um plugin para o Rsyslog, ou mesmo adaptar (de acordo com o tipo de licençadele, pois o projeto Rsyslog é regido pela GLPv3, e nada implica que seus plugins sejam, já que a grandemaioria não foram desenvolvidos pelos criados/desenvolvedores do Rsyslog) para a sua melhor aplicação numcenário específico.

Durante a configuração do "servidor" centralizado Rsyslog, houveram muitos erros. Na configuração da stringde conexão com o banco de dados, por exemplo, um simples espaço entre os dados desta string gera o erro naconexão com o banco de dados, e nada na documentação do site www.rsyslog.com/doc fala sobre isso.

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

21 de 22 22/4/2013 17:58

Page 22: Rsyslog - Gerenciamento Centralizado de Logs [Artigo]

Aliás, tirando a documentação do site oficial, pouquíssimos são os documentos disponíveis que tem algumvalor mensurável em questão de conteúdo, pois a maioria é uma replica de algum trabalho que é umacópia/tradução do que está no site.

Este documento foi todo escrito com palavras do autor, tendo uma sinopse do conteúdo encontrado nadocumentação oficial que foi usada como referência.

Talvez se houvesse uma documentação mais detalhada, a maioria destes erros poderiam ser corrigidos mesmoantes da sua ocorrência.

O tráfego na rede causado pelo Rsyslog não é impactante para influenciar no desempenho, porém, ao sepensar em banco de dados e dependendo da quantidade de pontos monitorados, poderá gerar um I/O muitogrande no banco, que pode onerar sua performance, cabendo ao responsável pela instalação/configuração,procurar por soluções que possam resolver e que atenda as necessidades.

Outro ponto forte do Rsyslog, é a possibilidade da implementação de segurança na transmissão dos eventospara o servidor centralizado, utilizando SSL/TLS.

No próximo artigo, implementaremos esta funcionalidade juntamente com o suporte de strings com mais de 32bits.

http://www.vivaolinux.com.br/artigo/Rsyslog-Gerenciamento-centralizado-de-logs

Voltar para o site

Rsyslog - Gerenciamento centralizado de logs [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13669

22 de 22 22/4/2013 17:58