

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à.

# Analisi dei pattern
<a name="CWL_AnalyzeLogData_Patterns"></a>

CloudWatch Logs Insights utilizza algoritmi di machine learning per trovare * i pattern * quando interroghi i log. Un pattern è una struttura di testo condivisa che ricorre tra i campi di log. Quando visualizzi i risultati di una query, puoi scegliere la ** scheda ** Pattern per visualizzare i pattern trovati dai CloudWatch log in base a un campione dei tuoi risultati. In alternativa, puoi aggiungere il `pattern` comando alla tua query per analizzare i pattern nell'intero set di eventi di log corrispondenti. 

I pattern sono utili per analizzare set di log di grandi dimensioni perché un gran numero di eventi di log può spesso essere compresso in pochi pattern.

Considerate il seguente esempio di tre eventi di registro.

```
2023-01-01 19:00:01 [INFO] Calling DynamoDB to store for resource id 12342342k124-12345
2023-01-01 19:00:02 [INFO] Calling DynamoDB to store for resource id 324892398123-12345
2023-01-01 19:00:03 [INFO] Calling DynamoDB to store for resource id 3ff231242342-12345
```

Nell'esempio precedente, tutti e tre gli eventi di registro seguono uno schema:

```
<Time-1> [INFO] Calling DynamoDB to store for resource id <ID-2>
```

I campi all'interno di un pattern sono denominati * token. * I campi che variano all'interno di uno schema, come l'ID di una richiesta o il timestamp, sono * token dinamici. * Ogni token dinamico è rappresentato da. `<{{string}}-{{number}}>` {{string}}È una descrizione del tipo di dati che il token rappresenta. {{number}}Mostra dove appare questo token nel pattern, rispetto agli altri token dinamici.

Esempi comuni di token dinamici includono codici di errore, timestamp e ID di richiesta. *Il valore di un token * rappresenta un valore particolare di un token dinamico. Ad esempio, se un token dinamico rappresenta un codice di errore HTTP, il valore di un token potrebbe esserlo`501`.

Il rilevamento dei pattern viene utilizzato anche nel rilevatore di anomalie CloudWatch Logs e nelle funzioni di confronto. Per ulteriori informazioni, consulta [Rilevamento delle anomalie nei registri](LogsAnomalyDetection.md) e [Confronta (diff) con gli intervalli di tempo precedenti](CWL_AnalyzeLogData_Compare.md).

## Guida introduttiva all'analisi dei pattern
<a name="CWL_AnalyzeLogData_Patterns-GetStarted"></a>

Il rilevamento dei pattern viene eseguito automaticamente in qualsiasi query di CloudWatch Logs Insights. Le query che non includono il `pattern` comando generano sia eventi di log che pattern nei risultati.

Se si include il `pattern` comando nella query, l'analisi dei pattern viene eseguita sull'intero set corrispondente di eventi di registro. Ciò consente di ottenere risultati di pattern più accurati, ma gli eventi di log non elaborati non vengono restituiti quando si utilizza il `pattern` comando. Quando una query non include`pattern`, i risultati dello schema si basano sui primi 1000 eventi di log restituiti o sul valore limite utilizzato nella query. Se includi `pattern` nella query, i risultati visualizzati nella ** scheda ** Patterns derivano da tutti gli eventi di log corrispondenti alla query.

**Per iniziare con l'analisi dei pattern in CloudWatch Logs Insights**

1. Apri la CloudWatch console all'indirizzo [ https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel pannello di navigazione scegli **Logs**, quindi **Logs Insights**.

   L'editor di query della pagina **Logs Insights** contiene una query predefinita che restituisce gli ultimi 20 log eventi.

1. Rimuovi la `| limit 20` riga nella casella della query, in modo che la query abbia il seguente aspetto:

   ```
   fields @timestamp, @message, @logStream, @log
   | sort @timestamp desc
   ```

1. Nel ** menu a ** discesa Seleziona i gruppi di log, scegli uno o più gruppi di log da interrogare.

1. (Facoltativo) Utilizza il selettore temporale per selezionare un periodo di tempo per il quale desideri eseguire query.

   Puoi scegliere tra intervalli di 5 e 30 minuti, intervalli di 1 ora, 3 ore e 12 ore o un intervallo di tempo personalizzato.

1. Scegli ** Esegui interrogazione per avviare la query. **

   Al termine dell'esecuzione della query, la ** scheda ** Registri visualizza una tabella degli eventi di registro restituiti dalla query. Sopra la tabella è riportato un messaggio sul numero di record corrispondenti alla query, simile a ** Visualizzazione di 10.000 record su 71.101 corrispondenti. **

1. Scegli la scheda ** Patterns. **

1. La tabella ora mostra i pattern trovati nella query. Poiché la query non includeva il `pattern` comando, questa scheda visualizza solo i pattern rilevati tra i 10.000 eventi di log mostrati nella tabella nella ** scheda ** Logs.

   Per ogni pattern, vengono visualizzate le seguenti informazioni:
   + The ** Pattern**, con ogni token dinamico visualizzato come`<{{string}}-{{number}}>`. {{string}}È una descrizione del tipo di dati che il token rappresenta. {{number}}Mostra dove appare questo token nel pattern, rispetto agli altri token dinamici.
   + Il numero di ** eventi**, ovvero il numero di volte in cui il pattern è apparso negli eventi di registro richiesti. Scegliete l'intestazione della ** colonna Conteggio ** eventi per ordinare i pattern in base alla frequenza.
   + Il rapporto ** degli eventi**, che è la percentuale degli eventi del registro interrogati che contengono questo modello. 
   + Il tipo di ** gravità**, che sarà uno dei seguenti:
     + **ERROR ** se il pattern contiene la parola ** Error**.
     + **AVVISA ** se il pattern contiene la parola ** Warn ** ma non contiene ** Error. **
     + **INFO ** se il pattern non contiene né ** Warn né Error. ** ** **

     Scegli l'intestazione della ** colonna Informazioni sulla ** gravità per ordinare i modelli in base alla gravità.

1. Ora modifica la query. Sostituisci la `| sort @timestamp desc` riga della query con`| pattern @message`, in modo che la query completa sia la seguente:

   ```
   fields @timestamp, @message, @logStream, @log
   | pattern @message
   ```

1. Scegli **Esegui query**.

   Al termine dell'interrogazione, non ci sono risultati nella ** scheda ** Log. Tuttavia, la ** scheda ** Patterns probabilmente contiene un numero maggiore di pattern elencati, a seconda del numero totale di eventi di log interrogati.

1. Indipendentemente dal fatto che tu lo abbia incluso `pattern` nella query, puoi controllare ulteriormente i pattern restituiti dalla query. A tale scopo, scegliete l'icona nella ** colonna ** Ispeziona relativa a uno dei pattern. 

   Viene visualizzato il ** riquadro ** Pattern inspect che mostra quanto segue: 
   + Il ** modello. ** Seleziona un token all'interno del pattern per analizzarne i valori.
   + Un istogramma che mostra il numero di occorrenze del pattern nell'intervallo di tempo richiesto. Questo può aiutarti a identificare tendenze interessanti, ad esempio un improvviso aumento della presenza di un pattern.
   + La ** scheda ** Log samples mostra alcuni degli eventi di log che corrispondono al pattern selezionato.
   + La ** scheda Valori dei ** token mostra i valori del token dinamico selezionato, se ne hai selezionato uno.
**Nota**  
Per ogni token vengono acquisiti un massimo di 10 valori di token. Il conteggio dei token potrebbe non essere preciso. CloudWatch Logs utilizza un contatore probabilistico per generare il conteggio dei token, non il valore assoluto.
   + La ** scheda Schemi ** correlati mostra altri modelli che si sono verificati frequentemente quasi contemporaneamente al modello che si sta esaminando. Ad esempio, se uno schema di un `ERROR` messaggio era in genere accompagnato da un altro evento di registro contrassegnato come `INFO` contenente dettagli aggiuntivi, tale modello viene visualizzato qui.

## Dettagli sul comando pattern
<a name="CWL_AnalyzeLogData_Patterns-Details"></a>

Questa sezione contiene ulteriori dettagli sul `pattern` comando e sui suoi usi.
+ Nel tutorial precedente, abbiamo rimosso il `sort` comando quando lo abbiamo aggiunto `pattern` perché una query non è valida se include un `pattern` comando dopo un `sort` comando. È valido avere un `pattern` prima di un`sort`.

   Per ulteriori dettagli sulla `pattern` sintassi, vedere[pattern](CWL_QuerySyntax-Pattern.md).
+ Quando si utilizza `pattern` in una query, `@message` deve essere uno dei campi selezionati nel `pattern` comando.
+ È possibile includere il `filter` comando prima di un `pattern` comando per utilizzare solo il set filtrato di eventi di registro come input per l'analisi dei pattern.
+ Per visualizzare i risultati dello schema per un campo particolare, ad esempio un campo derivato dal `parse` comando, usa`pattern @fieldname`.
+ Le interrogazioni con output non logaritmico, ad esempio le interrogazioni con il `stats` comando, non restituiscono risultati basati su pattern.

