Graylog: Utilizar com Dot NET

Como enviar logs de .NET/Serilog para Graylog

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece uma solução Graylog cloud pronta a usar que proporciona uma série de benefícios, incluindo:

  • Servidor de email SMTP ilimitado e dedicado incluído.
  • Atualizações sem esforço com apenas um clique.
  • Nome de domínio personalizável seguro com HTTPS (por exemplo, https://logs.sua-empresa.com).
  • Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: são necessários apenas 5 minutos para experimentar a solução Graylog cloud hosting da Stackhero!

Serilog é uma biblioteca de logging muito popular e altamente extensível, amplamente utilizada para a gestão de logs em aplicações .NET. Permite aos programadores configurar vários sinks para armazenamento e visualização de logs.

Aqui está um exemplo básico que demonstra a utilização do Serilog:

var log = new LoggerConfiguration()
    .WriteTo.Console()
    .WriteTo.File("log.txt")
    .CreateLogger();

log.Information("Hello, Serilog!");

Para enviar logs para um servidor Graylog, pode utilizar o pacote serilog-sinks-graylog. Este sink permite transmitir logs no formato GELF diretamente para o Graylog.

  1. Instalar o pacote:

    Adicione o pacote serilog-sinks-graylog ao seu projeto executando o seguinte comando:

    Install-Package serilog.sinks.graylog
    
  2. Configurar o Serilog para Graylog:

    Atualize a configuração da sua aplicação com o seguinte excerto de código. Substitua <XXXXXX>.stackhero-network.com pelo domínio da sua instância Graylog:

    var loggerConfig = new LoggerConfiguration()
        .WriteTo.Graylog(
            new GraylogSinkOptions
            {
                HostnameOrAddress = "<XXXXXX>.stackhero-network.com",
                Port = 12201
            }
        );
    
  3. Configurar o Graylog:

    • Inicie sessão no seu dashboard do Graylog.
    • Navegue até System > Inputs.
    • Crie um novo input do tipo "GELF UDP".
    • Clique em "Launch new input". Na janela que aparece, ative a opção "Global", atribua um título ao input e guarde as definições sem alterar mais nada.

Para reforçar a segurança, recomenda-se restringir os IPs autorizados a ligar-se à porta 12201. Pode configurar isto acedendo ao dashboard da Stackhero, selecionando o seu serviço Graylog e gerindo as definições do "Firewall" para permitir apenas IPs específicos.

Ao seguir estes passos, permite que a sua aplicação .NET envie logs para a sua instância Graylog de forma segura e eficiente.