Centralizando logs com Elastic Stack e .NET – Parte 1 (Docker)

Um dos maiores desafios se você utiliza uma arquitetura baseada em microservices ou até mesmo com vários monoliths, é de integrar e monitorar logs de diferentes aplicações e a capacidade de pesquisar esses dados de forma simples, rápida e de baixo custo.

Neste tutorial, mostrarei como você pode começar a praticar a observabilidade das aplicações .NET centralizando os logs com o Elastic Stack utilizando o Docker.

Este artigo faz parte da série:

Elastic Stack

Nesta primeira parte, o foco será na configuração e utilização das seguintes ferramentas do Elastic:

  • Elasticsearch: Mecanismo de pesquisa RESTful distribuído responsável pelo armazenamento de documentos (JSON) com Especialidade em busca Full-text.
  • Kibana: Interface web para pesquisa, criação e visualização de gráficos/dashboards (Canvas) e configuração de alertas.
  • Elastic APM: Sistema de monitoramento de desempenho de aplicações. Ele permite monitorar softwares em tempo real, coletando informações detalhadas de desempenho sobre o tempo de resposta das solicitações, consultas de banco de dados, solicitações HTTP e muito mais.

Pré-requisitos

Docker Compose

O primeiro passo é configurar o docker compose da solução com as imagens do Elasticsearch, Kibana e Elastic APM.

É necessário criar um arquivo chamado docker-compose.yml e um arquivo com o nome .env, os dois devem ficar na mesma pasta. No arquivo .env encontram-se as variáveis que serão utilizadas no docker compose:

Em seguida, configure o docker-compose.yml com o código abaixo. Algumas partes deste código são exemplos que a própria Elastic fornece na documentação.

Testando

Certifique-se de que o Docker tenha pelo menos 4GB de memória. No Docker Desktop, você configura esse valor no menu Settings e no item de menu Resources.

Para testar, execute o comando abaixo para iniciar as imagens no docker:

Em seguida, verifique se o Elasticsearch, Kibana e Elastic APM estão no ar:

Insira o usuário (elastic) e senha (pass@123) do Elasticsearch configurados no arquivo .env:

A seguinte tela deve ser apresentada em caso de sucesso:

Em seguida, abra o link do Kibana e insira o usuário (elastic) e senha (pass@123) do Elasticsearch configurados no arquivo .env. A seguinte tela deve ser apresentada em caso de sucesso:

E por fim, abra o link do Elastic APM. A seguinte tela deve ser apresentada em caso de sucesso:

Finalizando

Neste artigo, aprendemos como configurar e utilizar as imagens do Elastic Stack no Docker. Essa é a maneira mais fácil de iniciar a coleta de logs das aplicações. Para produção, normalmente hospedamos nossos dados em um provedor dedicado, como o elastic.io, o que nos poupa o esforço de gerenciar os servidores, segurança e atualizações das ferramentas.

Os detalhes completo desta série você encontra no meu GitHub: https://github.com/hgmauri/sample-observability

3 comentários

  1. […] Centralizando logs com Elastic Stack e .NET – Parte 1 (Docker) […]

  2. […] Centralizando logs com Elastic Stack e .NET – Parte 1 (Docker) […]

  3. […] Centralizando logs com Elastic Stack e .NET – Parte 1 (Docker) […]

Deixe uma resposta