

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configura la registrazione per le applicazioni.NET in Amazon CloudWatch Logs utilizzando NLog
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog"></a>

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

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

Questo modello descrive come utilizzare il framework di registrazione NLog open source per registrare l'utilizzo e gli eventi delle applicazioni.NET in [Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) Logs. Nella CloudWatch console, puoi visualizzare i messaggi di registro dell'applicazione quasi in tempo reale. Puoi anche impostare [metriche](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html) e configurare [allarmi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html) per avvisarti se viene superata una soglia metrica. Utilizzando CloudWatch Application Insights, è possibile visualizzare dashboard automatiche o personalizzate che mostrano potenziali problemi per le applicazioni monitorate. CloudWatch Application Insights è progettato per aiutarvi a isolare rapidamente i problemi in corso con le applicazioni e l'infrastruttura.

Per scrivere messaggi di log in CloudWatch Logs, aggiungi il `AWS.Logger.NLog` NuGet pacchetto al progetto.NET. Quindi, si aggiorna il `NLog.config` file per utilizzare CloudWatch Logs come destinazione.

## Prerequisiti e limitazioni
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un'applicazione web.NET o console che:
  + Utilizza le versioni supportate di .NET Framework o.NET Core. Per ulteriori informazioni, consulta *Versioni del prodotto*.
  + Viene utilizzato NLog per inviare dati di registro ad Application Insights.
+ Autorizzazioni per creare un ruolo IAM per un servizio AWS. Per ulteriori informazioni, consulta [Autorizzazioni dei ruoli di servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#id_roles_create_service-permissions).
+ Autorizzazioni per trasferire un ruolo a un servizio AWS. Per ulteriori informazioni, consulta [Concessione di autorizzazioni utente per il passaggio di un ruolo a un servizio AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).

**Versioni del prodotto**
+ .NET Framework versione 3.5 o successiva
+ .NET Core versioni 1.0.1, 2.0.0 o successive

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

**Stack tecnologico Target**
+ NLog
+  CloudWatch Registri Amazon

**Architettura Target**

![\[Diagramma dell'architettura di NLog scrittura dei dati di log per un'applicazione.NET su Amazon ClodWatch Logs.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/0ac9c3ad-2a28-415f-afc3-7fe3494b2b63/images/daea9f2f-7242-4ed2-843e-655d843dcfdf.png)


1. L'applicazione.NET scrive i dati di registro nel framework di NLog registrazione.

1. NLog scrive i dati di registro in CloudWatch Logs.

1. Si utilizzano CloudWatch allarmi e dashboard personalizzati per monitorare l'applicazione.NET.

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

**Servizi AWS**
+ [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) ti aiuta a osservare lo stato delle tue applicazioni e delle risorse AWS sottostanti.
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) ti aiuta a centralizzare i log di tutti i tuoi sistemi, applicazioni e servizi AWS in modo da poterli monitorare e archiviare in modo sicuro.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-welcome.html) è un set di PowerShell moduli che ti aiutano a creare script di operazioni sulle tue risorse AWS dalla PowerShell riga di comando.

**Altri strumenti**
+ [Logger. NLog](https://www.nuget.org/packages/AWS.Logger.NLog)è una NLog destinazione che registra i dati di registro in CloudWatch Logs.
+ [NLog](https://nlog-project.org/)è un framework di registrazione open source per piattaforme .NET che consente di scrivere dati di registro su destinazioni, come database, file di registro o console.
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)è un programma di gestione dell'automazione e della configurazione di Microsoft che funziona su Windows, Linux e macOS.
+ [Visual Studio](https://docs.microsoft.com/en-us/visualstudio/get-started/visual-studio-ide?view=vs-2022) è un ambiente di sviluppo integrato (IDE) che include compilatori, strumenti di completamento del codice, progettisti grafici e altre funzionalità che supportano lo sviluppo del software.

## Best practice
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-best-practices"></a>
+ Imposta una [politica di conservazione](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention) per il gruppo di log di destinazione. Questa operazione deve essere eseguita al di fuori della NLog configurazione. Per impostazione predefinita, i dati di registro vengono archiviati nei CloudWatch registri a tempo indeterminato.
+ Aderisci alle [migliori pratiche per la gestione delle chiavi di accesso AWS](https://docs.aws.amazon.com/accounts/latest/reference/credentials-access-keys-best-practices.html).

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

### Configura l'accesso e gli strumenti
<a name="set-up-access-and-tools"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare una policy IAM | Segui le istruzioni in [Creazione di politiche utilizzando l'editor JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) nella documentazione IAM. Inserisci la seguente policy JSON, che dispone dei privilegi minimi necessari per consentire CloudWatch ai log di leggere e scrivere i log.<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> | Amministratore AWS, AWS DevOps | 
| Crea un ruolo IAM. | Segui le istruzioni in [Creazione di un ruolo per delegare le autorizzazioni a un servizio AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) nella documentazione IAM. Seleziona la policy che hai creato in precedenza. Questo è il ruolo che CloudWatch Logs assume per eseguire le azioni di registrazione. | Amministratore AWS, AWS DevOps | 
| Configura AWS Tools per PowerShell. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html) | Informazioni generali su AWS | 

### Configurazione NLog
<a name="configure-nlog"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa il NuGet pacchetto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html) | Sviluppatore di app | 
| Configura la destinazione di registrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html)Per un file di configurazione di esempio, consultate la sezione [Informazioni aggiuntive](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-additional) di questo modello. Quando esegui l'applicazione, NLog scriverà i messaggi di registro e li invierà a CloudWatch Logs. | Sviluppatore di app | 

### Convalida e monitora i log
<a name="validate-and-monitor-logs"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida la registrazione. | Segui le istruzioni in [Visualizza i dati di registro inviati ai CloudWatch registri nella documentazione dei registri.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData) CloudWatch Verifica che gli eventi di registro vengano registrati per l'applicazione.NET. Se gli eventi di registro non vengono registrati, consultate la sezione [Risoluzione dei problemi](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-troubleshooting) in questo schema. | Informazioni generali su AWS | 
| Monitora lo stack di applicazioni.NET. | Configura il monitoraggio in base CloudWatch alle esigenze del tuo caso d'uso. Puoi utilizzare [CloudWatch Logs Insights, CloudWatch Metrics Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) [e [CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/query_with_cloudwatch-metrics-insights.html) per monitorare il tuo carico di lavoro.NET. Puoi anche configurare gli [allarmi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) in modo da poterli ricevere e creare una [dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) personalizzata per monitorare il carico di lavoro da un'unica vista. | Informazioni generali su AWS | 

## risoluzione dei problemi
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| I dati di registro non vengono visualizzati in CloudWatch Logs. | Assicurati che la policy IAM sia associata al ruolo IAM assunto da CloudWatch Logs. Per istruzioni, consulta la sezione *Configurazione dell'accesso e degli strumenti* nella sezione [Epics](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-epics). | 

## Risorse correlate
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-resources"></a>
+ [Lavorare con gruppi di log e flussi di log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) (documentazione relativa ai CloudWatch log)
+ [Amazon CloudWatch Logs e.NET Logging Frameworks](https://aws.amazon.com/blogs/developer/amazon-cloudwatch-logs-and-net-logging-frameworks/) (post sul blog AWS)

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

Di seguito è riportato un file di esempio. `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>
```