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 popular e altamente extensível, amplamente utilizada para gerir logs em aplicações .NET. Permite aos desenvolvedores configurar vários sinks para armazenamento e visualização de logs.

Aqui está um exemplo básico que demonstra o uso de Serilog:

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

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

Para enviar logs para um servidor Graylog, pode usar o pacote serilog-sinks-graylog. Este sink facilita a transmissão de logs no formato GELF diretamente para 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 Serilog para Graylog:

    Atualize a configuração da sua aplicação com o seguinte trecho 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 Graylog:

    • Inicie sessão no seu painel de controlo Graylog.
    • Navegue até System > Inputs.
    • Crie uma nova entrada do tipo "GELF UDP".
    • Clique em "Launch new input". Na janela modal que aparece, ative a opção "Global", atribua um título à entrada e guarde as definições sem mais alterações.

Para aumentar a segurança, é aconselhável restringir os IPs permitidos a conectar-se à porta 12201. Pode configurar isto acedendo ao painel de controlo Stackhero, selecionando o seu serviço Graylog e gerindo as definições do "Firewall" para permitir apenas IPs específicos.

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