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 lista para usar que proporciona una serie de beneficios, incluyendo:

  • Servidor de correo electrónico SMTP ilimitado y dedicado incluido.
  • Actualizaciones sin esfuerzo con solo un clic.
  • Nombre de dominio personalizable asegurado con HTTPS (por ejemplo, https://logs.tu-empresa.com).
  • Rendimiento óptimo y seguridad robusta gracias a una VM privada y dedicada.

Ahorra tiempo y simplifica tu vida: ¡solo toma 5 minutos probar la solución de Graylog cloud hosting de Stackhero!

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.