Graylog: Uso con Dot NET

Cómo enviar logs de .NET/Serilog a Graylog

👋 Bienvenido a la documentación de Stackhero

Stackhero ofrece una solución Graylog cloud totalmente gestionada, diseñada para ofrecer velocidad y simplicidad. Puede:

  • Contar con un servidor SMTP de correo electrónico dedicado e ilimitado incluido con su servicio.
  • Aplicar actualizaciones fácilmente con un solo clic, sin necesidad de intervención manual.
  • Utilizar un nombre de dominio personalizado protegido por HTTPS (por ejemplo, https://logs.su-empresa.com), proporcionando a su equipo un acceso directo y seguro.
  • Disfrutar de un alto nivel de rendimiento y seguridad en una infraestructura privada y dedicada, sin recursos compartidos ni vecinos ruidosos.

Concéntrese en sus datos, no en sus herramientas: puede empezar a utilizar la solución de Graylog cloud hosting de Stackhero en solo unos minutos.

Serilog es una biblioteca de logging muy popular y altamente extensible, ampliamente utilizada para la gestión de logs en aplicaciones .NET. Permite a los desarrolladores configurar diferentes sinks para el almacenamiento y la visualización de logs.

A continuación, se muestra un ejemplo básico que demuestra el uso de Serilog:

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

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

Para enviar logs a un servidor Graylog, puede utilizar el paquete serilog-sinks-graylog. Este sink facilita la transmisión de logs en formato GELF directamente a Graylog.

  1. Instale el paquete:

    Añada el paquete serilog-sinks-graylog a su proyecto ejecutando el siguiente comando:

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

    Actualice la configuración de su aplicación con el siguiente fragmento de código. Sustituya <XXXXXX>.stackhero-network.com por el dominio de su instancia de Graylog:

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

    • Acceda a su panel de control de Graylog.
    • Vaya a System > Inputs.
    • Cree una nueva entrada de tipo "GELF UDP".
    • Haga clic en "Launch new input". En la ventana emergente que aparece, active la opción "Global", asigne un nombre a la entrada y guarde la configuración sin realizar más cambios.

Para mejorar la seguridad, se recomienda restringir las IPs autorizadas a conectarse al puerto 12201. Puede configurar esto accediendo al panel de Stackhero, seleccionando su servicio Graylog y gestionando los ajustes del "Firewall" para permitir únicamente IPs específicas.

Siguiendo estos pasos, podrá habilitar que su aplicación .NET envíe logs de forma segura y eficiente a su instancia de Graylog.