

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

# Crea indici di campo per migliorare le prestazioni delle query e ridurre il volume di scansione
<a name="CloudWatchLogs-Field-Indexing"></a>

È possibile creare *indici di campo* dei campi negli eventi di registro per ricerche efficienti basate sull'uguaglianza. Quando poi si utilizza un indice di campo in una query di CloudWatch Logs Insights, la query tenta di ignorare l'elaborazione degli eventi di registro che notoriamente non includono il campo indicizzato. Ciò riduce il volume di scansione delle query che utilizzano gli indici di campo, rendendo possibile la restituzione dei risultati più rapidamente. Questo può aiutarti a cercare rapidamente petabyte di log totali in migliaia di gruppi di log e ad affinare più rapidamente i log pertinenti. I campi validi da indicizzare sono i campi per i quali spesso è necessario eseguire delle query. I campi con un'elevata cardinalità di valori sono anche ottimi candidati per gli indici di campo, perché una query che utilizza questi indici di campo verrà completata più rapidamente perché limita gli eventi di registro che vengono abbinati al valore di destinazione.

Ad esempio, supponiamo di aver creato un indice di campo per. `requestId` Quindi, qualsiasi query di CloudWatch Logs Insights su quel gruppo di log che includa `requestId = value` o `requestId IN [value, value, ...]` tenterà di elaborare solo gli eventi di registro che sono noti per contenere quel campo indicizzato e il valore interrogato e per i quali CloudWatch Logs ha rilevato un valore per quel campo in passato.

Puoi anche sfruttare gli indici dei campi per creare query efficienti su un numero maggiore di gruppi di log. Quando si utilizza il `filterIndex` comando nella query anziché il `filter` comando, la query verrà eseguita su gruppi di log selezionati sugli eventi di registro con indici di campo. Queste query possono scansionare fino a 10.000 gruppi di log, scelti specificando fino a cinque prefissi dei nomi dei gruppi di log. Se si tratta di un account di monitoraggio in modalità osservabile CloudWatch tra più account, è possibile scegliere tutti gli account di origine o specificare singoli account di origine per selezionare i «gruppi di log».

I campi indicizzati fanno distinzione tra maiuscole e minuscole. Ad esempio, un indice di campo non `RequestId` corrisponderà a un evento di registro contenente. `requestId`

Gli indici dei campi sono supportati solo per i formati di log strutturati di JSON e i log di servizio.

CloudWatch Logs fornisce indici di campo predefiniti per tutti i gruppi di log nella classe di log Standard. Gli indici di campo predefiniti sono automaticamente disponibili per i seguenti campi: 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Logs fornisce indici di campo predefiniti anche per determinate combinazioni di nomi e tipi di origini dati. Gli indici di campo predefiniti sono automaticamente disponibili per le seguenti combinazioni di nomi e tipi di origini dati:


| Nome e tipo di origine dati | Indici di campo predefiniti | 
| --- | --- | 
|  `amazon_vpc.flow`  |  `action` `logStatus` `region` `flowDirection` `type`  | 
|  `amazon_route53.resolver_query`  |  `query_type` `transport` `rcode`  | 
|  `aws_waf.access`  |  `action` `httpRequest.country`  | 
|  `aws_cloudtrail.data` ` aws_cloudtrail.management`  |  `eventSource` `eventName` `awsRegion` `userAgent` `errorCode` `eventType` `managementEvent` `readOnly` `eventCategory` `requestId`  | 

Gli indici di campo predefiniti si aggiungono a tutti gli indici di campo personalizzati definiti all'interno della politica. [Gli indici di campo predefiniti non vengono conteggiati ai fini della quota dell'indice di campo.](CloudWatchLogs-Field-Indexing-Syntax.md) 

CloudWatch Registra gli indici solo gli eventi di registro acquisiti dopo la creazione di una politica di indicizzazione. Non indicizza gli eventi di registro acquisiti prima della creazione della policy. Dopo aver creato un indice di campo, ogni evento di registro corrispondente rimane indicizzato per 30 giorni dal momento di inserimento dell'evento di registro.

**Nota**  
Se si crea una politica di indicizzazione dei campi in un account di monitoraggio, tale politica non viene utilizzata per i gruppi di log negli account di origine collegati. Una politica di indicizzazione dei campi si applica solo all'account in cui è stata creata.

Gli altri argomenti di questa sezione spiegano come creare indici di campo. Per informazioni sul riferimento agli indici di campo nelle query, consulta e. [FilterIndex](CWL_QuerySyntax-FilterIndex.md) [filter](CWL_QuerySyntax-Filter.md) 

**Topics**
+ [Sintassi e quote degli indici di campo](CloudWatchLogs-Field-Indexing-Syntax.md)
+ [Crea una politica di indicizzazione dei campi a livello di account](CloudWatchLogs-Field-Indexing-CreateAccountLevel.md)
+ [Crea una politica di indicizzazione dei campi a livello di gruppo di log](CloudWatchLogs-Field-Indexing-CreateLogGroupLevel.md)
+ [Registra le opzioni di selezione dei gruppi durante la creazione di un'interrogazione](Field-Indexing-Selection.md)
+ [Effetti dell'eliminazione di una politica di indicizzazione dei campi](CloudWatchLogs-Field-Indexing-Deletion.md)

# Sintassi e quote degli indici di campo
<a name="CloudWatchLogs-Field-Indexing-Syntax"></a>

*Gli indici di campo vengono creati creando criteri per gli indici di campo.* È possibile creare politiche di indicizzazione a livello di account che si applicano all'intero account e anche creare politiche che si applicano a un solo gruppo di log. Per quanto riguarda le politiche di indicizzazione a livello di account, puoi averne una che si applichi a tutti i gruppi di log dell'account. È inoltre possibile creare politiche di indicizzazione a livello di account che si applicano a un sottoinsieme di gruppi di log dell'account, selezionati in base ai prefissi dei nomi dei rispettivi gruppi di log. Se hai più politiche a livello di account nello stesso account, i prefissi dei nomi dei gruppi di log per queste politiche non possono sovrapporsi. Allo stesso modo, puoi creare politiche di indicizzazione a livello di account che si applicano a una combinazione specifica di nome e tipo di origine dati. È possibile creare una sola politica dell'account per combinazione di nome e tipo di origine dati. 

Le politiche dell'indice dei campi a livello di gruppo di log hanno la precedenza sulle politiche dell'indice dei campi a livello di account: si applicano all'intero gruppo di log (ad esempio, le politiche a livello di account senza criteri di selezione o con criteri di selezione basati sul prefisso del nome del gruppo di log). Le politiche a livello di account che corrispondono a livello di evento di registro (ad esempio, per una determinata combinazione di nome e tipo di origine dati) verranno applicate in aggiunta alle politiche che corrispondono al gruppo di log nel suo insieme. Se si creano criteri di indicizzazione a livello di gruppo di log, tale gruppo di log non utilizza politiche a livello di account che corrispondono a livello di gruppo di log.

Le corrispondenze degli eventi di registro con i nomi degli indici dei campi fanno distinzione tra maiuscole e minuscole. Ad esempio, un indice di campo di non `RequestId` corrisponderà a un evento di registro contenente. `requestId`

È possibile avere fino a 40 criteri di indicizzazione a livello di account, di questi criteri 20 possono utilizzare criteri di selezione del prefisso del nome del gruppo di log e 20 possono utilizzare criteri di selezione basati sull'origine dei dati. Se hai più politiche di indicizzazione a livello di account filtrate in base ai prefissi dei nomi dei gruppi di log, nessuna di esse può utilizzare prefissi di nomi di gruppi di log uguali o sovrapposti. Ad esempio, se hai una politica filtrata in base ai gruppi di log che iniziano con`my-log`, non puoi avere un'altra politica di indice dei campi filtrata su o. `my-logpprod` `my-logging` Analogamente, se hai più policy di indicizzazione a livello di account filtrate in base a combinazioni di nomi e tipi di origini dati, non esistono due di esse che possano utilizzare lo stesso nome e tipo di origine dati. Ad esempio, se hai una politica filtrata in base al nome dell'origine dati `amazon_vpc` e al tipo di origine dati, non `flow` puoi creare un'altra politica con questa combinazione.

Se si dispone di una politica di indicizzazione a livello di account che non ha prefissi di nome e si applica a tutti i gruppi di log, non è possibile creare altre politiche di indicizzazione a livello di account con filtri per i prefissi dei nomi dei gruppi di log; è possibile creare politiche di indice a livello di account che utilizzano filtri per il nome e il tipo di origine dati.

Ogni politica di indicizzazione prevede le seguenti quote e restrizioni:
+ Nella policy possono essere inclusi fino a 20 campi.
+ Ogni nome di campo può includere fino a 100 caratteri.
+ Per creare un indice di un campo personalizzato nei gruppi di log che inizi con`@`, devi specificare il campo con un extra `@` all'inizio del nome del campo. Ad esempio, se gli eventi del registro includono un campo denominato`@userId`, è necessario specificare `@@userId` di creare un indice per questo campo.

Per le politiche di indicizzazione a livello di account con criteri di selezione basati sul nome dell'origine dati e sul tipo, si applica un'ulteriore restrizione: tutti i campi devono essere tipi di dati primitivi, le primitive annidate sono supportate solo per le strutture.

**Campi generati e campi riservati**

CloudWatch Logs Insights genera automaticamente campi di sistema in ogni evento di registro. Questi campi generati hanno il prefisso `@` Per ulteriori informazioni sui campi generati, vedere. [Registri supportati e campi rilevati](CWL_AnalyzeLogData-discoverable-fields.md)

Di questi campi generati, i seguenti sono supportati per l'uso come indici di campo:
+ `@logStream`
+ `@ingestionTime`
+ `@requestId`
+ `@type`
+ `@initDuration`
+ `@duration`
+ `@billedDuration`
+ `@memorySize`
+ `@maxMemoryUsed`
+ `@xrayTraceId`
+ `@xraySegmentId`

Per indicizzare questi campi generati, non è necessario aggiungerne un altro `@` quando li si specifica, come è necessario fare per i campi personalizzati che iniziano con. `@` Ad esempio, per creare un indice di campo per`@logStream`, è sufficiente specificare `@logStream` come indice di campo.

CloudWatch Logs fornisce indici di campo predefiniti per tutti i gruppi di log nella classe di log Standard. Gli indici di campo predefiniti sono automaticamente disponibili per i seguenti campi: 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Logs fornisce indici di campo predefiniti anche per determinate combinazioni di nomi e tipi di origini dati. Gli indici di campo predefiniti sono automaticamente disponibili per le seguenti combinazioni di nomi e tipi di origini dati:


| Nome e tipo di origine dati | Indici di campo predefiniti | 
| --- | --- | 
|  `amazon_vpc.flow`  |  `action` `logStatus` `region` `flowDirection` `type`  | 
|  `amazon_route53.resolver_query`  |  `query_type` `transport` `rcode`  | 
|  `aws_waf.access`  |  `action` `httpRequest.country`  | 
|  `aws_cloudtrail.data` ` aws_cloudtrail.management`  |  `eventSource` `eventName` `awsRegion` `userAgent` `errorCode` `eventType` `managementEvent` `readOnly` `eventCategory` `requestId`  | 

Gli indici di campo predefiniti si aggiungono a tutti gli indici di campo personalizzati definiti all'interno della politica. [Gli indici di campo predefiniti non vengono conteggiati ai fini della quota dell'indice di campo.](#CloudWatchLogs-Field-Indexing-Syntax) 

**Campi secondari e campi array nei log JSON**

È possibile indicizzare i campi che sono campi secondari o campi array annidati nei log JSON.

Ad esempio, puoi creare un indice del campo `accessKeyId` figlio all'interno del `userIdentity` campo all'interno di questo registro:

```
{
    "eventVersion": "1.0",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EXAMPLE_PRINCIPAL_ID",
        "arn": "arn: aws: iam: : 123456789012: user/Alice",
        "accessKeyId": "11112222",
        "accountId": "123456789012",
        "userName": "Alice"
    },
    "eventTime": "2014-03-06T21: 22: 54Z",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "StartInstances",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "192.0.2.255",
    "userAgent": "ec2-api-tools1.6.12.2",
    "requestParameters": {
        "instancesSet": {
            "items": [{
                "instanceId": "i-abcde123",
                "currentState": {
                    "code": 0,
                    "name": "pending"
                },
                "previousState": {
                    "code": 80,
                    "name": "stopped"
                }
            }]
        }
    }
}
```

Per creare questo campo, vi fate riferimento utilizzando la notazione a punti (`userIdentity.accessKeyId`) sia durante la creazione dell'indice del campo che quando lo specificate in una query. L'interrogazione potrebbe avere il seguente aspetto:

```
fields @timestamp, @message 
| filterIndex userIdentity.accessKeyId = "11112222"
```

Nell'evento di esempio precedente, il `instanceId` campo si trova in una matrice all'interno di `requestParameters.instancesSet.items` Per rappresentare questo campo sia durante la creazione dell'indice del campo che durante `requestParameters.instancesSet.items.0.instanceId` l'interrogazione, fate riferimento ad esso poiché 0 si riferisce alla posizione di quel campo nell'array.

Quindi una query per questo campo potrebbe essere la seguente:

```
fields @timestamp, @message 
| filterIndex requestParameters.instancesSet.items.0.instanceId="i-abcde123"
```

# Crea una politica di indicizzazione dei campi a livello di account
<a name="CloudWatchLogs-Field-Indexing-CreateAccountLevel"></a>

Utilizza i passaggi descritti in questa sezione per creare una politica di indice dei campi che si applichi a tutti i gruppi di log dell'account o a più gruppi di log i cui nomi di gruppi di log iniziano con la stessa stringa.

**Per creare una politica di indicizzazione dei campi a livello di account**

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

1. Nel riquadro di navigazione a sinistra, scegli **Impostazioni**, quindi scegli la scheda **Registri.**

1. Nella sezione **Politiche relative all'indice a livello di account**, scegli **Gestisci**.

1. Scegli **Crea politica sull'indice**.

1. Per **Nome della politica**, inserisci un nome per la nuova politica.

1. Per **Seleziona l'ambito della politica**, esegui una delle seguenti operazioni:
   + Scegliete **Tutti i gruppi di log standard** per applicare la politica di indicizzazione a tutti i gruppi di log di Standard Class presenti nell'account.
   + Scegli **Registra i gruppi per corrispondenza del prefisso** per applicare la politica a un sottoinsieme di gruppi di log i cui nomi iniziano con la stessa stringa. Quindi, inserisci il prefisso per questi gruppi di log in **Inserisci un nome** di prefisso.

     Dopo aver inserito il prefisso, puoi scegliere **Anteprima dei gruppi di log corrispondenti al prefisso per confermare che il prefisso corrisponde ai gruppi** di log che ti aspettavi.

     Scegli **Registra dati per origine dati per** applicare la politica a una combinazione specifica di nome e tipo di origine dati. Puoi quindi selezionare l'**origine dei dati** e il **tipo di dati** dal menu a discesa. 

     Dopo aver selezionato il nome e il tipo di origine dati, puoi selezionare **Ottieni campi** per compilare la sezione **Configura gli indici e i facet dei campi con informazioni pertinenti come i campi disponibili, i gruppi di log inclusi e gli indici di campo** predefiniti e personalizzati.

1. Per la **configurazione personalizzata dei campi indice**, scegli **Aggiungi percorso campo per inserire il primo campo** da indicizzare.

   Quindi inserisci la stringa da utilizzare come valore del nome del campo o seleziona un campo dal menu a discesa. Deve corrispondere esattamente al maiuscolo/minuscolo visualizzato nel registro degli eventi. Ad esempio, se gli eventi di registro includono`requestId`, devi inserirli `requestId` qui. `RequestId``requestID`, e non `request Id` corrisponderebbe.

   Se si desidera indicizzare un campo di registro personalizzato che inizia con il `@` carattere, è necessario includere un `@` carattere aggiuntivo quando si immette la stringa dell'indice. Ad esempio, se disponi di un campo di registro personalizzato`@emailname`, **inseriscilo `@@emailname` nella casella Aggiungi percorso del campo**.

   Puoi anche creare indici per i `@logStream` campi `@ingestionTime` e generati automaticamente da CloudWatch Logs. In tal caso, non è necessario aggiungerne altri `@` quando li si specifica.

1. (Facoltativo) Oltre a specificare il percorso del campo, puoi selezionare **Imposta come sfaccettatura per creare il campo come sfaccettatura**.

1. Ripeti il passaggio precedente per aggiungere fino a 20 indici di campo.

1. Al termine, scegliere **Create (Crea)**.

# Crea una politica di indicizzazione dei campi a livello di gruppo di log
<a name="CloudWatchLogs-Field-Indexing-CreateLogGroupLevel"></a>

Utilizza i passaggi descritti in questa sezione per creare una politica di indice dei campi che si applichi a un singolo gruppo di log.

**Per creare una politica di indicizzazione dei campi a livello di gruppo di log**

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

1. Nel pannello di navigazione a sinistra, scegli **Logs (Log)**, **Log groups (Gruppi di log)**.

1. Scegli il nome del gruppo di log.

1. Scegli la scheda **Indici di campo.**

1. Scegli **Gestisci gli indici dei campi per questo gruppo di log**

1. Per **Gestisci gli indici dei campi a livello di gruppo di log**, scegli **Aggiungi percorso di campo** per inserire il primo campo da indicizzare.

   Quindi inserisci la stringa da utilizzare come valore del nome del campo. Deve corrispondere esattamente al maiuscolo/minuscolo visualizzato nel registro degli eventi. Ad esempio, se gli eventi di registro includono`requestId`, devi inserirli `requestId` qui. `RequestId``requestID`, e non `request Id` corrisponderebbe.

   Se si desidera indicizzare un campo di registro personalizzato che inizia con il `@` carattere, è necessario includere un `@` carattere aggiuntivo quando si immette la stringa dell'indice. Ad esempio, se disponi di un campo di registro personalizzato`@emailname`, **inseriscilo `@@emailname` nella casella Aggiungi percorso del campo**.

   Puoi anche creare indici per i `@logStream` campi `@ingestionTime` e generati automaticamente da CloudWatch Logs. In tal caso, non è necessario aggiungerne altri `@` quando li si specifica.

1. (Facoltativo) Oltre a specificare il percorso del campo, puoi selezionare **Imposta come sfaccettatura per creare il campo come sfaccettatura**.

1. Ripeti il passaggio precedente per aggiungere fino a 20 indici di campo.

1. Al termine, scegliere **Save** (Salva).

# Registra le opzioni di selezione dei gruppi durante la creazione di un'interrogazione
<a name="Field-Indexing-Selection"></a>

Questa sezione spiega i vari modi in cui è possibile selezionare i gruppi di log da includere in una query.

**Per selezionare i gruppi di log per un'interrogazione nella console**

1. Aprire 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**.

1. Seleziona la lingua di interrogazione che desideri utilizzare per questa interrogazione. **Puoi scegliere tra: **Logs Insights QL, **OpenSearchPPL** o OpenSearch SQL**.**

1. Esistono tre modi per selezionare i gruppi di log per la query:
   + Utilizzate la casella **Nome del gruppo di log**. Questo è il metodo di selezione predefinito. Con questo metodo è possibile inserire fino a 50 nomi di gruppi di log. Se si tratta di un account di monitoraggio in CloudWatch modalità osservabile tra più account, è possibile selezionare gruppi di log negli account di origine e nell'account di monitoraggio. Una singola query può interrogare i log di diversi account contemporaneamente. 
   + Utilizza la sezione **Criteri del gruppo di log**. In questa sezione, è possibile scegliere i gruppi di log in base al prefisso dei nomi dei gruppi di log. È possibile includere fino a cinque prefissi in una query. Verranno selezionati i gruppi di log che hanno questi prefissi nei nomi. In alternativa, l'opzione **Tutti i gruppi di log** seleziona tutti i gruppi di log dall'account. 
   + Se si tratta di un account di monitoraggio in modalità CloudWatch osservabile su più account, puoi selezionare **Tutti gli account** nel menu a discesa degli account per selezionare i gruppi di log tra tutti gli account collegati. In alternativa, puoi selezionare singolarmente quali account includere in questa query.

   Se le tue scelte corrispondono a più di 10.000 gruppi di log, visualizzerai un errore che ti chiederà di restringere la selezione.

1. **La classe di log predefinita per una query è Standard.** È possibile utilizzare la **classe Log** per modificarla in **Accesso infrequente**.

**Usando la AWS CLI**

Per effettuare questo tipo di selezione quando si avvia una query dalla riga di comando, è possibile utilizzare il `source` comando contenuto nella query. Per maggiori informazioni ed esempi, consulta [SOURCE](CWL_QuerySyntax-Source.md).

# Effetti dell'eliminazione di una politica di indicizzazione dei campi
<a name="CloudWatchLogs-Field-Indexing-Deletion"></a>

Se si elimina una politica di indicizzazione dei campi che è in vigore da un certo periodo, si verifica quanto segue:
+ Fino a 30 giorni dopo l'eliminazione della policy, le query possono ancora trarre vantaggio dagli eventi di registro indicizzati.
+ Se si elimina una politica di indicizzazione a livello di gruppo di log ed esiste già una politica a livello di account applicabile a quel gruppo di log, la politica a livello di account verrà infine applicata a quel gruppo di log.