Nunca mais perca um log!

Paulo Henrique Oliveira
3 min readJan 1, 2021

--

A auto-hospedagem é ótima, mas quando você começa a ter vários serviços em execução, ainda precisa supervisionar tudo isso um pouco. Até agora, contei com alguns scripts para isso. Meu servidor tem pouca atividade e é suficiente, mesmo que não seja perfeito. Um dos problemas é que estou usando várias máquinas virtuais (via virtualbox) e, portanto, tenho que processar tudo máquina por máquina. Outro problema está ligado ao fato de que do lado da visualização, bem fica mais ou menos toras brutas. Resumindo, eu só precisei de um tempinho para trabalhar nesse assunto.

Razões para esta escolha do log

É claro que existem muitas soluções diferentes. Após uma busca rápida, dois deles chamaram minha atenção. A pilha ELK (Elasticsearch + Logstash + Kibana) e Graylog (+ elasticsearch + mongodb). É esta segunda solução que decidi implantar, não que seja necessariamente melhor que a outra (não sei), mas meu caso de uso é bastante básico, portanto, ambos devem fazer o ‘caso (posso mudar de ideia mais tarde).

Configuração do servidor

No lado do servidor Graylog, é possível adicionar as seguintes regras de iptables a fim de redirecionar todos os pacotes que chegam na porta 514 para a porta 1514, a fim de poder capturá-los posteriormente:

iptables -t nat -A PREROUTING -p tcp — dport 514 -j REDIRECIONAR — para 1514

iptables -t nat -A PREROUTING -p udp — dport 514 -j REDIRECIONAR — para 1514

A configuração atual do Graylog é realizada no arquivo “/etc/graylog/server/server.conf”. Na verdade, não há muito o que modificar, exceto a senha de administrador e o URI que permite acesso ao servidor (aqui, apenas da rede local; a versão 3 do Graylog recém-lançado simplifica esta parte ao unificar essas configurações em comparação com a versão 2.5 que instalei primeiro).

Também pode-se modificar o seguinte para não replicar os dados e agrupá-los todos em um único fragmento (a priori, ficarei longe o suficiente dos limites que poderiam me fazer reconsiderar a questão):

elasticsearch_shards = 1

elasticsearch_replicas = 0

Comece

Depois de fazer isso, você só precisa iniciar tudo e planejar para iniciar esses serviços a cada início:

# systemctl enable elasticsearch.service

# systemctl start elasticsearch.service

# systemctl enable mongod.service

# systemctl start mongod.service

# systemctl enable graylog-server.service

# systemctl start graylog-server.service

Após uma fase de inicialização que pode durar vários minutos, Graylog pode ser acessado por meio de uma interface da web na porta 9000. Neste estágio, você deve definir entradas no Graylog porque, no momento, é um shell vazio. Eu criei duas “entradas” com um atributo “Global” (nada para modificar de outra forma):

Syslog UDP

Syslog TCP (apenas no caso de nada acontecer nesta entrada normalmente)

Aí, se tudo correr bem, na aba “pesquisar”, veremos aos poucos nossos logs e gráficos associados chegarem. É possível filtrar as entradas de acordo com as nossas necessidades, configurar o período de visualização, os campos que queremos que apareçam, etc.

É super legal, a possibilidade de configurar dashboards em que teremos a possibilidade de descobrir que temos pré-configurados. Os resultados são apresentados de forma sintética na forma de gráfico e é possível acessar rapidamente os dados que geraram essas tabelas.

Artigo originalmente publicado em: https://www.escolalinux.com.br/blog/nunca-mais-perca-um-log

--

--

Paulo Henrique Oliveira
Paulo Henrique Oliveira

Written by Paulo Henrique Oliveira

Empresário do ramo de tecnologia há mais de 20 anos, líder em consultoria, serviços e soluções baseadas na plataforma Linux.

No responses yet