Configure el registro para aplicaciones.NET en Amazon CloudWatch Logs mediante nLog - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configure el registro para aplicaciones.NET en Amazon CloudWatch Logs mediante nLog

Creado por Bibhuti Sahu (AWS) y Rob Hill (AWS) (AWS)

Entorno: producción

Tecnologías: gestión y gobierno DevOps; aplicaciones web y móviles

Carga de trabajo: Microsoft

Servicios de AWS: Amazon CloudWatch Logs

Resumen

Este patrón describe cómo utilizar el marco de registro de código abierto NLog para registrar el uso y los eventos de las aplicaciones.NET en Amazon CloudWatch Logs. En la CloudWatch consola, puede ver los mensajes de registro de la aplicación prácticamente en tiempo real. También puede configurar métricas y alarmas para recibir notificaciones en caso de que se superen los umbrales de métrica. Con CloudWatch Application Insights, puede ver paneles automatizados o personalizados que muestran los posibles problemas de las aplicaciones monitoreadas. CloudWatch Application Insights está diseñado para ayudarlo a identificar rápidamente los problemas actuales de sus aplicaciones e infraestructura.

Para escribir mensajes de registro en CloudWatch Logs, agregue el AWS.Logger.NLog NuGet paquete al proyecto.NET. A continuación, actualiza el NLog.config archivo para usar CloudWatch Logs como destino.

Requisitos previos y limitaciones

Requisitos previos

  • Una cuenta de AWS activa.

  • Una aplicación web o de consola .NET que:

    • Use versiones compatibles de .NET Framework o .NET Core. Para obtener más información, consulte Versiones de producto.

    • Use NLog para enviar datos de registro a Application Insights.

  • Permisos para crear un rol de IAM para un servicio de AWS. Para obtener más información, consulte Permisos de roles de servicios.

  • Permisos para transferir un rol a un servicio de AWS. Para obtener más información, consulte Concesión de permisos a un usuario para transferir un rol a un servicio de AWS.

Versiones de producto

  • .NET Framework versión 3.5 o posterior

  • .NET Core versiones 1.0.1, 2.0.0 o posterior

Arquitectura

Pila de tecnología de destino

  • NLog

  • Amazon CloudWatch Logs

Arquitectura de destino

Diagrama de arquitectura de NLog que escribe datos de registro para una aplicación.NET en Amazon ClodWatch Logs.
  1. La aplicación .NET escribe los datos de registro en el marco de registro NLog.

  2. NLog escribe los datos de registro en Logs. CloudWatch

  3. Se utilizan CloudWatch alarmas y paneles personalizados para supervisar la aplicación.NET.

Herramientas

Servicios de AWS

Otras herramientas

  • Logger.nlog es un objetivo de NLog que registra los datos de registro en Logs. CloudWatch

  • NLog es un marco de registro de código abierto para plataformas .NET que le permite escribir datos de registro en los destinos, como bases de datos, archivos de registro o consolas.

  • PowerShelles un programa de administración de automatización y configuración de Microsoft que se ejecuta en Windows, Linux y macOS.

  • Visual Studio es un entorno de desarrollo integrado (IDE) que incluye compiladores, herramientas de finalización de código, diseñadores gráficos y otras características que facilitan el desarrollo de software.

Prácticas recomendadas

Epics

TareaDescripciónHabilidades requeridas

Cree una política de IAM.

Siga las instrucciones indicadas en Crear políticas mediante el editor JSON, en la documentación de IAM. Introduce la siguiente política de JSON, que tiene los permisos de privilegios mínimos necesarios para permitir que CloudWatch Logs lea y escriba registros.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:GetLogEvents", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutRetentionPolicy" ], "Resource": [ "*" ] } ] }
Administrador de AWS, AWS DevOps

Crear un rol de IAM.

Para obtener instrucciones, consulte Creating a Role to Delegate Permissions to an AWS Service en la documentación de IAM. Seleccione la política que creó previamente. Esta es la función que asume CloudWatch Logs para realizar las acciones de registro.

Administrador de AWS, AWS DevOps

Configure las herramientas de AWS para PowerShell.

  1. Siga las instrucciones para su sistema operativo que aparecen en Instalación de las herramientas de AWS para PowerShell.

  2. Utilice las herramientas de AWS para PowerShell cmdlets para almacenar la clave de acceso y la clave secreta en un perfil. Para obtener instrucciones, consulte Administración de perfiles en las herramientas de AWS para ver PowerShell la documentación.

AWS general
TareaDescripciónHabilidades requeridas

Instale el NuGet paquete.

  1. En Visual Studio, seleccione Archivo y, a continuación, elija Abrir un proyecto o solución.

  2. Seleccione el proyecto en el que desea instalar NLog.

  3. En Visual Studio, elija Tools, NuGet Package Manager, Package Manager Console.

  4. Instale el AWS.Logger.NLog NuGet paquete introduciendo el siguiente comando.

    Install-Package AWS.Logger.NLog -Version 3.1.0
Desarrollador de aplicaciones

Configure el destino de registro.

  1. Abra el archivo NLog.config.

  2. Para el destino type, introduzca AWSTarget.

  3. Para el destino logGroup, escriba el nombre del grupo de registro que desea usar. Si el grupo de registro no existe aún, se creará automáticamente un nuevo grupo de registro con el nombre proporcionado.

  4. Para el destinoregion, introduzca la región de AWS en la que está configurado CloudWatch Logs.

  5. Para el destino profile, introduzca el nombre del perfil que creó anteriormente para almacenar la clave de acceso y la clave secreta.

  6. Guarde y cierre el archivo NLog.config.

Para obtener una copia de este archivo de configuración, consulte la sección Información adicional de este patrón. Cuando ejecute la aplicación, NLog escribirá los mensajes de registro y los enviará a CloudWatch Logs.

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Valide el registro.

Siga las instrucciones de la documentación sobre cómo ver los datos de registro enviados a CloudWatch CloudWatch Logs. Compruebe que los eventos de registro de la aplicación .NET se estén registrando. Si no constan eventos de registro, consulte la sección Solución de problemas de este patrón.

AWS general

Supervise la pila de la aplicación .NET.

Configure la supervisión CloudWatch según sea necesario para su caso de uso. Puede utilizar CloudWatch Logs Insights, CloudWatch Metrics Insights y CloudWatch Application Insights para supervisar su carga de trabajo de.NET. También puede configurar alarmas para recibir alertas y crear un panel personalizado para supervisar la carga de trabajo desde una vista única.

AWS general

Solución de problemas

ProblemaSolución

Los datos de registro no aparecen en CloudWatch los registros.

Asegúrese de que la política de IAM esté asociada a la función de IAM que asume CloudWatch Logs. Para obtener más instrucciones, consulte la sección Configurar el acceso y las herramientas de la sección Épica.

Recursos relacionados

Información adicional

A continuación se muestra un archivo de muestra NLog.config.

<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" /> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> <nlog> <extensions> <add assembly="NLog.AWS.Logger" /> </extensions> <targets> <target name="aws" type="AWSTarget" logGroup="NLog.TestGroup" region="us-east-1" profile="demo"/> </targets> <rules> <logger name="*" minlevel="Info" writeTo="aws" /> </rules> </nlog> </configuration>