Soluções para Gestão de Logs

Devido a importância dos registros de logs é importante conhecer e utilizar soluções especializadas para gestão de logs de aplicações capazes de garantir a segurança da informação, detectando atividades não autorizadas ou em não conformidade com a política organizacional. Inseridos neste contexto, atualmente existem algumas ferramentas e trabalhos propostos que possuem como premissa a incorporação do processo de logging em sistemas informatizados, bem como o gerenciamento e armazenamento centralizado de registros de logs.

Por exemplo, para a infraestrutura de desenvolvimento de logs existem projetos:

Estes projetos oferecem um conjunto de bibliotecas, as quais possuem operações para instanciar, configurar, formatar as saídas e envio das mensagens para o mecanismo de log. Estes projetos apenas geram as informações de logs e não possuem extensões que possibilitem a captura e armazenamento centralizado destas informações. São bibliotecas utilizadas no estágio de desenvolvimento de um projeto de software, ou seja, muitas vezes fica a critério do programador utilizar estes projetos para gerar logs de dados na sua aplicação. Normalmente são utilizados com ferramenta de debug, gerando logs de exceções ou erros da aplicação. Servem apenas como ferramenta auxiliar no ciclo de desenvolvimento de uma aplicação.

Relacionado à área de redes de computadores, existem diversos projetos que auxiliam na difícil tarefa de coletar registros de logs. Neste contexto está inserido o TCP Wrappers – ferramenta capaz de interceptar e filtrar pedidos de conexão aos serviços de rede inicializados pelo inetd (FINGER, FTP, TELNET, RLOGIN, RSH, EXEC, TALK e outros), o PingLogger – ferramenta que registra pacotes ICMP (Internet Control Message Protocol) e o Secure Syslog (ssyslogd) – ferramenta de auditoria de logs gerados em uma rede de computadores.

Na área relacionada ao armazenamento e análise de logs, existem projetos:

Estas ferramentas são capazes de oferecer um mecanismo para a centralização de logs. Estas ferramentas possuem como foco principal realizar logging de redes de computadores e sistemas operacionais, deixando um pouco a desejar quanto à necessidade de logging sobre aplicações empresariais armazenando principalmente alterações em banco de dados.

scribe

O Scribe foi desenvolvido pelo Facebook usando o Apache Thrift (linguagem de definições de interfaces) e lançado em 2008 como código aberto. Este projeto trata-se de um servidor para armazenar dados de logs transmitidos em tempo real a partir de um grande número de servidores. É uma aplicação distribuída, escalável e extensível onde os servidores se tornam um conjunto de nós, enviando informações uns para os outros garantindo uma segurança maior quando ocorrer falhas na rede. Ele foi projetado para utilizar o mínimo possível de recursos de rede e de disco, ou seja, muita informação fica em memória e caso o cliente Scribe não consiga se conectar a um servidor esta informação pode ser perdida. Além disso, se um servidor falhar a informação que não está em disco é perdida. O Scribe foca seu armazenamento em logs de acesso, estatísticas de desempenho e ações de usuários para alimentação de informações, sendo indicado para organizações que possuem uma boa estrutura física de rede. O seu uso requer um alto grau de conhecimento, pois a aplicação não é oferecida como serviço em nuvem e caso deseje utiliza-lo será necessário realizar manualmente a sua complexa instalação. A integração com outros sistema é feito por meio do Thrift e requer programadores com conhecimento desta biblioteca, além disso, não existe uma interface específica para analisar os registros logs tendo que fazer uso de comandos específicos ou utilizar bibliotecas adicionais.

logo_splunk

O Splunk é uma ferramenta de armazenamento, pesquisa e análise de logs de TI. Por meio dele é possível investigar incidentes de segurança em questão de minutos e também monitorar a infraestrutura de TI de ponta a ponta para evitar a degradação ou a interrupção de serviços. Ele não utiliza um banco de dados e faz uso do seu próprio engine para organizar os dados em disco, ou seja, requer discos rápidos de no mínimo 800 I/O por segundo. O Splunk é instalado como repositório central sendo possível apontar servidores de logs ou equipamento de redes para direcionar seus logs para ele. Além disso, é possível instalar um aplicativo adicional em qualquer máquina da rede para varrer os logs do sistema operacional e enviar ao Splunk. O seu foco são logs de equipamentos de redes e sistemas operacionais e possui uma interface rica de fácil utilização e instalação. Por se tratar de uma ferramenta proprietária, a sua desvantagem está no seu alto custo, sendo inviável sua aquisição em empresas de pequeno e médio porte.

logzilla

O LogZilla é uma ferramenta para armazenamento e análise de logs de redes de computadores. É possível direcionar os logs dos equipamentos de redes para enviar suas informações ao LogZilla, bem como é possível instalar bibliotecas e aplicativos nas mais diversas máquinas da rede para enviar seus logs ao repositório central. O LogZilla é capaz de coletar dados e índices de máquinas em grande escala permitindo aos usuários pesquisar, analisar, monitorar e reportar esses dados em tempo real. Esta ferramenta foi projetada para logs de redes sendo inviável seu uso para monitorar logs de aplicações comerciais, além disso, trata-se de ferramenta proprietária que não oferece serviço em nuvem e mesmo possuindo uma licença free, para pequenas quantidades de dados e até dez hosts, quando houver uma demando maior a sua aquisição pode se tornar inviável.

No futuro serão abordados posts falando sobre o Argos (https://github.com/ezequieljuliano/argos). Este projeto foi desenvolvido por mim e trata-se de um software para a gestão centralizada e especializada de logs de aplicações, com o foco voltado para o armazenamento de logs referente a alterações em informações de banco de dados.