Essa é a última parte da série de posts com foco no estudo do Serilog e seus sinks!
Nessa parte da série, vamos enviar os logs para o ELK Stack! Vamos utilizar o ELK por meio do Elastic Cloud, facilitando o processo de criação dos recursos.
Vamos acessar o seguinte site e iniciar um período de avaliação gratuita. Os preços do Elastick Cloud podem ser conferidos aqui.
https://www.elastic.co
Após o cadastro, podemos criar um deployment!
Nesse post, chamei o deployment de "My app" e ele está localizado na região us-central-1 da GCP.
Com isso, podemos ver que temos acesso a todas as ferramentas oferecidas pelo Elastic Cloud.
Dentro do menu de Search, já podemos copiar o Cloud ID do seu deployment, vamos utilizá-lo logo mais.
Além disso, precisamos criar uma chave para servir como segredo. Vamos copiar o valor "Encoded" gerado.
Essa são todas as informações necessárias para enviarmos os logs do Serilog para o Elastic Cloud.
Voltando ao nosso projeto, vamos adicionar o seguinte pacote NuGet:
dotnet add package Elastic.Serilog.Sinks
Na configuração do Serilog, iremos adicionar o seguinte trecho de código para enviarmos os logs para o deployment do ELK criado anteriormente.
// Add ELK
loggerConfig.WriteTo.ElasticCloud(
cloudId:"<your-cloud-id>",
apiKey: "<your-encoded-api-key>",
opts =>
{
opts.DataStream = new DataStreamName("my-logs", "app", "prod");
opts.BootstrapMethod = BootstrapMethod.Failure;
opts.ConfigureChannel = channelOpts =>
{
channelOpts.BufferOptions = new BufferOptions
{
ExportMaxConcurrency = 10
};
};
});
Com isso, podemos executar novamente a chamada HTTP.
De volta a plataforma do Elastic Cloud, precisamos criar um data view, utilizado o data stream que foi criado após o envio dos logs
Com isso, já podemos ver os logs gerados!
Podemos melhorar a visualização, exibindo apenas os campos desejados, que nesse caso, são as mensagens dos logs.
Além disso, podemos expandir o log, para visualizar todos os dados relacionados a esse registro.
Recomendo uma leitura profunda da documentação oficial do ELK!
E assim fechamos essa série de posts! Você já pode baixar o projeto por esse link, e não esquece de me seguir no LinkedIn!
Até a próxima, abraços!