Graylog: Utilizar com Dot NET

Como enviar logs de .NET/Serilog para Graylog

👋 Bem-vindo à documentação da Stackhero

A Stackhero disponibiliza uma solução Graylog cloud totalmente gerida, concebida para garantir rapidez e simplicidade. Pode:

  • Contar com um servidor de email SMTP dedicado e ilimitado incluído no seu serviço.
  • Aplicar atualizações de forma simples, com apenas um clique, sem necessidade de intervenção manual.
  • Utilizar um domínio personalizado protegido por HTTPS (por exemplo, https://logs.sua-empresa.com), proporcionando à sua equipa um acesso direto e seguro.
  • Beneficiar de elevada performance e segurança numa infraestrutura privada e dedicada, sem recursos partilhados nem vizinhos ruidosos.

Concentre-se nos seus dados, não nas ferramentas: pode começar a utilizar a solução Graylog cloud hosting da Stackhero em apenas alguns minutos.

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.