Falemos

Investigação e desenvolvimento · 2018

JamesLog

Recolher, normalizar e analisar os logs de equipamentos diferentes numa única base de dados: do cliente no terreno à consola de análise.

Título oficial, em italiano: «Studio di fattibilità volto all'individuazione di una soluzione software idonea a raccogliere, codificare univocamente, standardizzare e analizzare log provenienti da dispositivi differenti». Nome interno do produto: eLogger 4.0.

Objetivo

Uma única base de dados genérica, boa para qualquer tipo de log, no lugar de formatos dispersos e incompatíveis. Quem tem em casa aparelhos de marcas diferentes sabe-o bem: cada um escreve os seus registos à sua maneira, e quando é preciso perceber o que aconteceu não há um sítio onde olhar.

A arquitetura, em três níveis

No terreno há um cliente construído sobre um Raspberry Pi 3: recebe os logs por UDP na porta 514, mostra-os em tempo real numa interface tátil — lista dos equipamentos, detalhe dos pacotes, consola para quem sabe onde pôr as mãos — e converte-os num pacote normalizado.

Na cloud estão as funções que recebem: autenticação, temporização e recolha verificam a validade de cada pacote antes de o escrever na base de dados. O canal é cifrado, os pacotes têm uma cifra própria, e cada cliente é habilitado ao envio com uma troca de chaves.

Na secretária de quem analisa está a aplicação de leitura: filtros por nó, empresa, gravidade e categoria, contador de logs por segundo, consultas à mão e gestão das contas dos clientes.

O que daí saiu

Um protótipo a trabalhar em pleno regime sobre equipamentos reais: o cliente a recolher e a enviar ao vivo, e o servidor com quase dois mil logs indexados e filtráveis. Com manual de utilização, procedimentos de recuperação e gestão dos códigos de estado — ou seja, as coisas que fazem falta no dia em que alguma coisa corre mal.

Do laboratório

As imagens provêm da documentação original do projeto.

Os três níveis do sistema: o cliente no terreno, as funções na cloud que recebem e verificam, a base de dados central.
Os três níveis do sistema: o cliente no terreno, as funções na cloud que recebem e verificam, a base de dados central.
O ecrã inicial do cliente, no equipamento no terreno.
O ecrã inicial do cliente, no equipamento no terreno.
Os logs recolhidos e enviados, mostrados em tempo real no cliente.
Os logs recolhidos e enviados, mostrados em tempo real no cliente.
A consola do cliente, para quem precisa de ver o que está mesmo a acontecer.
A consola do cliente, para quem precisa de ver o que está mesmo a acontecer.
A página de configuração do cliente: rede, chaves e parâmetros de envio.
A página de configuração do cliente: rede, chaves e parâmetros de envio.
A aplicação de análise: logs indexados, filtros por nó, gravidade e categoria.
A aplicação de análise: logs indexados, filtros por nó, gravidade e categoria.