Esse ambiente está configurado para facilitar o desenvolvimento, não invente de usar ele assim em produção!
A aplicação .Net está com o pacote do serilog configurado para enviar os logs em formato json para o RabbitMq.
Sempre que o ILogger (ou ILogger<>) for injetado os logs serão direcionados para a exchange que foi configurada no appsetting.json.
O Logstash vai pegas as mensagens do Rabbit e grava-las no Elastic Search.
O Kibana é a interface que permite a visualização dos logs. Ele já está apontando para o Elastic Search, mas não configurei nenhum dashboard. Você pode fazer isso manualmente quando quiser usar.
Considerando que o docker esteja instalado, basta ir até a pasta do repositório executar o seguinte comando
docker compose up
Após todos os containers estarem de pé...
A aplicação pode ser acessada pelo endereço abaixo, ela vai ter só um swagger mesmo.
A interface de gerenciamento do RabbitMq está com o usuário guest (senha guest) ativo.
O Kibana está no seguinte local, você pode usar o menu Analytis -> Discover para configurar uma exibição.
As portas do RabbitMq e o Elastic Search são 5672 e 9200 respectivamente, caso queira fazer alguma outra conexão.
Para entender como cada aplicação está configurada, sugiro começar olhando o docker-compose pela ordem que os containers aparecem, arquivos auxiliares de cara aplicação podem ser encontrados nas suas pastas.
https://hub.docker.com/_/rabbitmq
https://www.rabbitmq.com/definitions.html
https://www.elastic.co/guide/en/elasticsearch/reference/8.5/docker.html
https://www.elastic.co/guide/en/logstash/8.5/docker-config.html