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à.
Sintassi e quote degli indici di campo
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 conmy-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@@userIddi 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
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
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.
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"