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.
Le politiche di indicizzazione dei campi a livello di gruppo di log hanno la precedenza sulle politiche di indice dei campi a livello di account: se crei una politica di indicizzazione a livello di gruppo di log, quel gruppo di log utilizza solo quella politica e ignora le politiche a livello di account.
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
Puoi avere fino a 20 politiche di indicizzazione a livello di account. Se hai più politiche di indicizzazione a livello di account filtrate per registrare i prefissi dei nomi dei gruppi di log, nessuno di essi 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
Se disponi 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.
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.
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
-
@xraySetmentId
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.
Campi secondari e campi matrice 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"