

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 las aplicaciones.NET en Amazon CloudWatch Logs mediante NLog
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog"></a>

*Bibhuti Sahu y Rob Hill (AWS), Amazon Web Services*

## Resumen
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-summary"></a>

Este patrón describe cómo utilizar el marco de registro de NLog código abierto para registrar el uso y los eventos de las aplicaciones.NET en [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html). 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html) y [alarmas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html) 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
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-prereqs"></a>

**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*.
  + Se utiliza 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#id_roles_create_service-permissions).
+ 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).

**Versiones de producto**
+ .NET Framework versión 3.5 o posterior
+ .NET Core versiones 1.0.1, 2.0.0 o posterior

## Arquitectura
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-architecture"></a>

**Pila de tecnología de destino**
+ NLog
+ Amazon CloudWatch Logs

**Arquitectura de destino**

![Diagrama de arquitectura de NLog escritura de datos de registro de una aplicación.NET en Amazon ClodWatch Logs.](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/0ac9c3ad-2a28-415f-afc3-7fe3494b2b63/images/daea9f2f-7242-4ed2-843e-655d843dcfdf.png)


1. La aplicación.NET escribe los datos de registro en el marco de NLog registro.

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

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

## Tools (Herramientas)
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-tools"></a>

**Servicios de AWS**
+ [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) le ayuda a observar el estado de sus aplicaciones y los recursos de AWS subyacentes.
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) le ayuda a centralizar los registros de todos sus sistemas, aplicaciones y servicios de AWS para que pueda supervisarlos y archivarlos de forma segura.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos.
+ [Las herramientas de AWS PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-welcome.html) son un conjunto de PowerShell módulos que le ayudan a programar operaciones en sus recursos de AWS desde la línea de PowerShell comandos.

**Otras herramientas**
+ [Registrador. NLog](https://www.nuget.org/packages/AWS.Logger.NLog)es un NLog objetivo que registra datos de registro en CloudWatch Logs.
+ [NLog](https://nlog-project.org/)es un marco de registro de código abierto para plataformas .NET que le ayuda a escribir datos de registro en destinos, como bases de datos, archivos de registro o consolas.
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)es un programa de administración de automatización y configuración de Microsoft que se ejecuta en Windows, Linux y macOS.
+ [Visual Studio](https://docs.microsoft.com/en-us/visualstudio/get-started/visual-studio-ide?view=vs-2022) 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
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-best-practices"></a>
+ Establezca una [política de retención](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention) para el grupo de registro de destino. Esto debe hacerse fuera de la NLog configuración. De forma predeterminada, los datos de registro se almacenan en CloudWatch los registros de forma indefinida.
+ Respete las [Prácticas recomendadas para administrar las claves de acceso de AWS](https://docs.aws.amazon.com/accounts/latest/reference/credentials-access-keys-best-practices.html).

## Epics
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-epics"></a>

### Configure el acceso y las herramientas
<a name="set-up-access-and-tools"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una política de IAM. | Siga las instrucciones indicadas en [Crear políticas mediante el editor JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor), 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.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "logs:CreateLogGroup",<br />                "logs:CreateLogStream",<br />                "logs:GetLogEvents",<br />                "logs:PutLogEvents",<br />                "logs:DescribeLogGroups",<br />                "logs:DescribeLogStreams",<br />                "logs:PutRetentionPolicy"<br />            ],<br />            "Resource": [<br />                "*"<br />            ]<br />        }<br />    ]<br />}</pre> | Administrador de AWS, AWS DevOps | 
| Crear un rol de IAM. | Para obtener instrucciones, consulte [Creating a Role to Delegate Permissions to an AWS Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 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. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html) | AWS general | 

### Configuración NLog
<a name="configure-nlog"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale el NuGet paquete. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html) | Desarrollador de aplicaciones | 
| Configure el destino de registro. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html)Para obtener una copia de este archivo de configuración, consulte la sección [Información adicional](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-additional) de este patrón. Cuando ejecute la aplicación, NLog escribirá los mensajes de registro y los enviará a CloudWatch Logs. | Desarrollador de aplicaciones | 

### Valide y supervise los registros
<a name="validate-and-monitor-logs"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Valide el registro. | Sigue las instrucciones de la documentación sobre cómo [ver los datos de registro enviados a CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData) 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](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-troubleshooting) 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html), [CloudWatch Metrics Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/query_with_cloudwatch-metrics-insights.html) y [CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) para supervisar su carga de trabajo de.NET. También puede configurar [alarmas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) para recibir alertas y crear un [panel](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) personalizado para supervisar la carga de trabajo desde una vista única. | AWS general | 

## Resolución de problemas
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-troubleshooting"></a>


| Problema | Solució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](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-epics). | 

## Recursos relacionados
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-resources"></a>
+ [Trabajar con grupos de registros y flujos de CloudWatch registros (documentación](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) de registros)
+ [Amazon CloudWatch Logs y .NET Logging Frameworks](https://aws.amazon.com/blogs/developer/amazon-cloudwatch-logs-and-net-logging-frameworks/) (entrada del blog de AWS)

## Información adicional
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-additional"></a>

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>
```