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 dell'indice dei campi
Gli indici dei campi vengono creati mediante la creazione di criteri per gli indici di campo. Puoi creare criteri di indicizzazione a livello di account che si applicano all'intero account e puoi anche creare criteri che si applicano solo a un singolo 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 criteri di indicizzazione a livello di account che si applicano a un sottoinsieme di gruppi di log presenti nell'account, selezionati in base ai prefissi dei nomi dei relativi gruppi di log. Se hai più policy a livello di account nello stesso account, i prefissi dei nomi dei gruppi di log per queste policy non possono sovrapporsi. Allo stesso modo, puoi creare criteri di indicizzazione a livello di account che si applicano a una specifica combinazione di nome e tipo di origine dati. È possibile creare una sola policy di account per combinazione di nome e tipo di origine dati.
I criteri di indicizzazione dei campi a livello di gruppo di log hanno la precedenza sui criteri di indice dei campi a livello di account: si applicano al gruppo di log nel suo insieme (ad esempio, i criteri a livello di account senza criteri di selezione o con criteri di selezione basati sul prefisso del nome del gruppo di log). Account-level le politiche 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 all'intero gruppo di log. Se si creano criteri di indicizzazione a livello di gruppo di log, tale gruppo di log non utilizza policy 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, 20 di questi criteri possono utilizzare criteri di selezione del prefisso del nome del gruppo di log e 20 possono utilizzare criteri di selezione basati sull'origine dati. Se hai più criteri di indicizzazione a livello di account filtrati in base ai prefissi dei nomi dei gruppi di log, nessuno di essi può utilizzare prefissi uguali o sovrapposti. Ad esempio, se hai un criterio filtrato in base ai gruppi di log che iniziano conmy-log, non puoi avere un altro criterio di indice di campo filtrato in o. my-logpprod my-logging Analogamente, se hai più criteri di indicizzazione a livello di account filtrati in base a combinazioni di nome e tipo di origine dati, non due di esse possono utilizzare lo stesso nome e tipo di origine dati. Ad esempio, se hai una policy filtrata in base al nome amazon_vpc e al tipo di origine dati dell'origine dati, non flow puoi creare un'altra policy con questa combinazione.
Se disponi di un criterio di indicizzazione a livello di account che non ha prefissi di nome e si applica a tutti i gruppi di log, non è possibile creare nessun altro criterio di indice a livello di account con filtri per il prefisso del nome del gruppo di log; puoi creare criteri di indice a livello di account che utilizzano filtri per nome e tipo di origine dati.
Ogni policy di indicizzazione prevede le quote e le restrizioni seguenti:
-
Nella politica 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 inizia 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 i campi di sistema in ogni evento di registro. Questi campi generati sono preceduti da @ Per ulteriori informazioni sui campi generati, vedereRegistri 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 altri @ 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 specificarlo @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 dei campi predefiniti |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Gli indici di campo predefiniti si aggiungono a tutti gli indici di campo personalizzati definiti nella policy. Gli indici di campo predefiniti non vengono conteggiati nella quota dell'indice di campo. Sintassi e quote dell'indice dei campi
Campi secondari e campi array nei log JSON
È possibile indicizzare i campi che sono campi figlio 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, si fa riferimento ad esso utilizzando la notazione a punti (userIdentity.accessKeyId) sia quando si crea l'indice del campo sia quando lo si specifica in una query. La query potrebbe assomigliare a questa:
fields @timestamp, @message | filterIndex userIdentity.accessKeyId = "11112222"
Nel precedente evento di esempio, 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 l'interrogazione, riferitevi ad esso poiché requestParameters.instancesSet.items.0.instanceId lo 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"