Sintaxis y cuotas del índice de campos - Amazon CloudWatch Logs

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Sintaxis y cuotas del índice de campos

Los índices de campos se crean mediante la creación de políticas de índices de campos. Puede crear políticas de indexación a nivel de cuenta que se apliquen a toda la cuenta y también puede crear políticas que se apliquen solo a un grupo de registros. En el caso de las políticas de indexación aplicables a toda la cuenta, puede tener una que se aplique a todos los grupos de registros de la cuenta. También puede crear políticas de indexación a nivel de cuenta que se apliquen a un subconjunto de grupos de registros de la cuenta, seleccionados por los prefijos de sus nombres de grupos de registros. Si tiene varias políticas a nivel de cuenta en la misma cuenta, los prefijos de los nombres de los grupos de registros de estas políticas no pueden superponerse.

Las políticas de índice de campos a nivel de grupo de registros anulan las políticas de índice de campos a nivel de cuenta: si crea una política de índice a nivel de grupo de registros, ese grupo de registros usará solo esa política e ignorará las políticas a nivel de cuenta.

Las coincidencias de los eventos de registro con los nombres de los índices de campo distinguen mayúsculas de minúsculas. Por ejemplo, un índice de campo de RequestId no coincidirá con un evento de registro que contenga. requestId

Puede tener hasta 20 políticas de indexación a nivel de cuenta. Si tiene varias políticas de indexación a nivel de cuenta filtradas para incluir prefijos de nombres de grupos de registros, ninguna de ellas podrá utilizar prefijos de nombres de grupos de registros iguales o superpuestos. Por ejemplo, si tiene una política filtrada para registrar los grupos que comienzan pormy-log, no puede tener otra política de indexación de campos filtrada a o. my-logpprod my-logging

Si tiene una política de indexación a nivel de cuenta que no tiene prefijos de nombre y se aplica a todos los grupos de registros, no podrá crear ninguna otra política de indexación a nivel de cuenta.

Cada política de índice tiene las siguientes cuotas y restricciones:

  • Se pueden incluir hasta 20 campos en la política.

  • Cada nombre de campo puede incluir hasta 100 caracteres.

  • Para crear un índice de un campo personalizado en sus grupos de registros que comience por@, debe especificar el campo con un extra @ al principio del nombre del campo. Por ejemplo, si los eventos de registro incluyen un campo denominado@userId, debe especificar @@userId la creación de un índice para este campo.

Campos generados y campos reservados

CloudWatch Logs Insights genera automáticamente los campos del sistema en cada evento de registro. Estos campos generados llevan el prefijo @ Para obtener más información sobre los campos generados, consulteRegistros y campos detectados compatibles.

De estos campos generados, se admiten los siguientes para su uso como índices de campos:

  • @logStream

  • @ingestionTime

  • @requestId

  • @type

  • @initDuration

  • @duration

  • @billedDuration

  • @memorySize

  • @maxMemoryUsed

  • @xrayTraceId

  • @xraySetmentId

Para indexar estos campos generados, no es necesario añadir nada adicional @ al especificarlos, como ocurre con @ los campos personalizados que comienzan por. Por ejemplo, para crear un índice de campos@logStream, basta con @logStream especificarlo como índice de campo.

Campos secundarios y campos matriciales en los registros JSON

Puede indexar campos que sean campos secundarios anidados o campos matriciales en los registros JSON.

Por ejemplo, puedes crear un índice del campo accessKeyId secundario dentro del userIdentity campo de este 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" } }] } } }

Para crear este campo, utilice la notación de puntos (userIdentity.accessKeyId) tanto al crear el índice de campos como al especificarlo en una consulta. La consulta podría tener este aspecto:

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

En el caso del ejemplo anterior, el instanceId campo está en una matriz dentro de requestParameters.instancesSet.items Para representar este campo tanto al crear el índice de campos como al realizar consultas, consúltelo como requestParameters.instancesSet.items.0.instanceId El 0 se refiere a la posición de ese campo en la matriz.

Entonces, una consulta para este campo podría ser la siguiente:

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