Transforme sua Raspberry Pi em um SysLog Server - MakerHero

Transforme sua Raspberry Pi em um SysLog Server Deixe um comentário

Arquivos de log registram eventos que ocorrem no sistema operacional. Seu principal objetivo é permitir a identificação de eventuais problemas. Ocorre que, consultar um único repositório de dados (Syslog Server) é muito mais eficiente do que consultar cada dispositivo individualmente para obter os mesmos dados. Ao final desse post, teremos desenvolvido um SysLog Server com Raspberry Pi. Uma solução eficiente e economicamente viável para você e também para pequenas e médias empresas.

Material necessário para o Syslog Server com Raspberry Pi

Para realizar este projeto, vamos precisar de:

O que é Syslog?

Syslog (System Logging Protocol) é um protocolo usado para coletar mensagens de log do sistema, gravá-las em arquivos (/var/log), ou ainda, encaminhá-las para um repositório de dados, também conhecido como Syslog Server.

Existem várias implementações do Syslog, nesse post usaremos o Rsyslog. Além da pilha TIG (Telegraf / InfluxDB / Grafana) para visualizar as mensagens de log em gráficos e tabelas.

O que é Rsyslog?

Rsyslog é um sistema “rápido como um foguete” para processamento de log. Ele oferece alto desempenho, excelentes recursos de segurança e um design modular.

Rsyslog pode ser configurado em um modelo cliente/servidor. Como cliente, ele encaminha as mensagens de log para um servidor (Syslog Server). Como servidor, ele recebe as mensagens de log dos clientes.

O que é a pilha TIG (Telegraf / InfluxDB / Grafana)?
A Pilha TIG é um acrônimo para Telegraf, InfluxDB e Grafana.

Telegraf é usado para enviar as mensagens de log coletadas pelo Rsyslog para o InfluxDB.

InfluxDB é um banco de dados de série temporal (dados com registro de data e hora), otimizado para armazenamento rápido e de alta disponibilidade. Usado para armazenar as mensagens de log enviadas pelo Telegraf.

Grafana é um pacote de visualização e monitoramento de dados. A ferramenta fornece um belo painel de controle e análises de métricas. Usado para visualizar as mensagens de log em gráficos e tabelas, tendo como fonte de dados o InfluxDB.

Instalação e configuração do Rsyslog

Instale o Rsyslog:

Edite o arquivo de configuração (fazendo uma cópia de segurança antes):

Descomente as linhas abaixo para usar TCP como protocolo de transporte:

Em seguida, adicione as linhas abaixo para criar um modelo para os logs de entrada. Se você não configurar um modelo, todas as mensagens de log enviadas pelos clientes serão misturadas com os logs do servidor:

Finalmente, adicione a linha abaixo, substituindo 192.168.0 de acordo com sua configuração de rede, especificando quem têm permissão de enviar mensagens de log para Rsyslog:

IMPORTANTE: pelo design do UDP, não é possível identificar um endereço de remetente falsificado. Dessa forma, uma pessoa mal-intencionada pode falsificar o endereço de um cliente e enviar mensagens de log em seu lugar. Para evitar isso, use o Rsyslog via TCP exclusivamente.

Até aqui, configuramos o Rsyslog para receber mensagens de log na porta 514 TCP, apenas de dispositivos da rede 192.168.0.0/24 e armazená-las no diretório /var/log.

Agora precisamos configurar o Rsyslog para encaminhar as mensagens de log para o Telegraf.

Para isso, edite o arquivo de configuração:

Adicione as linhas abaixo:

E reinicie o serviço:

Instalação e configuração do Telegraf

Instale o Telegraf:

Edite o arquivo de configuração (fazendo uma cópia de segurança antes):

Para enviar as mensagens de log ao InfluxDB, adicione as linhas abaixo logo após a seção [[outputs.influxdb]:

Para receber as mensagens de log encaminhadas pelo Rsyslog, adicione as linhas abaixo no final do arquivo:

E reinicie o serviço:

Instalação e configuração do InfluxDB

Instale o InfluxDB:

IMPORTANTE: Se o InfluxDB estiver sendo implantado em um endereço publicamente acessível, recomenda-se fortemente que a autenticação seja habilitada. Caso contrário, os dados estarão disponíveis publicamente para qualquer usuário não autenticado. Além disso, restrinja o acesso criando usuários individuais e atribuindo a eles permissões relevantes de leitura e/ou gravação.

Acesse a ferramenta:

Crie o usuário (admin) e senha (P@55word) com privilégios de administrador (WITH ALL PRIVILEGES), exigência para habilitar a autenticação:

Crie o usuário (telegraf) e senha (Te1egr@f) com privilégios de administrador apenas para o banco de dados telegraf (GRANT ALL ON telegraf):

Feche a ferramenta CLI:

Edite o arquivo de configuração (fazendo uma cópia de segurança antes):

Adicione a linha abaixo logo após a seção [http]:

E reinicie o serviço:

Instalação e configuração do Grafana

Instale o Grafana:

Acesse o Grafana usando seu navegador preferido, substituindo 192.168.0.16 pelo endereço IP da sua Raspberry Pi :

Digite o usuário (admin) e senha (admin) padrão

Por segurança será solicitado a troca da senha padrão.

No menu esquerdo, clique na seção Configuration > Data sources

Na janela seguinte, clique em Add data source

No painel de seleção, escolha InfluxDB e clique em Select

No campo URL digite: http://localhost:8086

No campo Database digite: telegraf
No campo User digite: telegraf
No campo Password digite: Te1egr@f
No campo HTTP Method selecione: POST

Clique em Save & test, se tudo estiver certo você verá Data source is working

No menu esquerdo, clique na seção Create > Import

No campo Import via grafana.com digite 12433 e clique em Load

No campo InfluxDB selecione InfluxDB e clique em Import

Pronto!! Já é possível visualizar as mensagens de log em gráficos e tabelas.

Agora que concluímos a instalação e configuração do Syslog Server, precisamos configurar os clientes.

Instalação e configuração do Rsyslog no Cliente

Instale o Rsyslog:

Edite o arquivo de configuração (fazendo uma cópia de segurança antes):

Adicione as linhas abaixo no final do arquivo, substituindo 192.168.0.16 pelo endereço IP da sua Raspberry Pi:

E reinicie o serviço:

Conclusão

Você configurou com sucesso um Syslog Server usando Rsyslog, InfluxDB, Telegraf e Grafana. Com certeza a tarefa de analisar mensagens de log será muito mais eficiente. O Grafana mostra um painel de gráfico de estatísticas (syslog count) na parte superior, com base no período de tempo escolhido. Além de uma visão de tabela (Syslog Messages) de todas as mensagens dentro deste período de tempo, incluindo as colunas usuais como hora da mensagem, appname, host, gravidade e texto da mensagem. Também fornece alguns filtros extras com base no nome do aplicativo, nome do host, gravidade e texto da mensagem. Uma solução completa, usando somente software open source e a pequena grande Raspberry Pi.

Faça seu comentário

Acesse sua conta e participe