

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.

# Creación de índices de campo para mejorar el rendimiento de las consultas y reducir el volumen de análisis
<a name="CloudWatchLogs-Field-Indexing"></a>

Se pueden crear *índices de campo* de los campos de los eventos de registro para realizar búsquedas eficientes y basadas en la igualdad. Cuando, a continuación, utilizas un índice de campos en una consulta de CloudWatch Logs Insights, la consulta intenta omitir el procesamiento de los eventos de registro que se sabe que no incluyen el campo indexado. Esto reduce el volumen de análisis de las consultas que emplean índices de campo, lo que permite devolver resultados con mayor rapidez. Esto puede ayudar a buscar rápidamente petabytes del total de registros en miles de grupos de registros y a centrarse más rápidamente en los registros pertinentes. Los campos adecuados para indexar son aquellos que se necesitan consultar con frecuencia. Los campos que tienen una alta cardinalidad de valores también son buenos candidatos para los índices de campo, ya que una consulta que utilice estos índices de campo se completará más rápido, dado que limita los eventos de registro que coinciden con el valor objetivo.

Supongamos que se ha creado un índice de campo para `requestId`. Luego, cualquier consulta de CloudWatch Logs Insights sobre ese grupo de registros que incluya `requestId = value` o `requestId IN [value, value, ...]` intente procesar solo los eventos de registro que se sabe que contienen ese campo indexado y el valor consultado, y que CloudWatch Logs haya detectado un valor para ese campo en el pasado.

También se pueden aprovechar los índices de campos para crear consultas eficientes de un mayor número de grupos de registros. Si utiliza el comando `filterIndex` en la consulta en lugar del comando `filter`, la consulta se ejecutará en grupos de registros seleccionados en los eventos de registro que tengan índices de campo. Estas consultas pueden analizar hasta 10 000 grupos de registros, que se eligen al especificar hasta cinco prefijos de nombre de grupos de registros. Si se trata de una cuenta de monitorización mediante la observación CloudWatch multicuenta, puede elegir todas las cuentas de origen o especificar cuentas de origen individuales para seleccionar los grupos de registros».

Los campos indexados distinguen entre mayúsculas y minúsculas. Por ejemplo, un índice de campo de `RequestId` no coincidirá con un evento de registro que contenga `requestId`.

Los índices de campos solo se admiten para los formatos de registro estructurado de JSON y los registros de servicio.

CloudWatch Los registros proporcionan índices de campo predeterminados para todos los grupos de registros de la clase de registros estándar. Los índices de campo predeterminados están disponibles automáticamente para los siguientes campos: 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Los registros también proporcionan índices de campo predeterminados para determinadas combinaciones de nombres y tipos de fuentes de datos. Los índices de campo predeterminados están disponibles automáticamente para las siguientes combinaciones de nombre y tipo de fuente de datos:


| Nombre y tipo de fuente de datos | Índices de campo predeterminados | 
| --- | --- | 
|  `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`  | 

Los índices de campos predeterminados se suman a cualquier índice de campo personalizado que defina en su política. Los índices de campo predeterminados no se incluyen en la [cuota de índices de campo](CloudWatchLogs-Field-Indexing-Syntax.md). 

CloudWatch Los registros indexan solo los eventos de registro ingeridos después de crear una política de indexación. No indexa los eventos de registro ingeridos antes de que se creara la política. Tras crear un índice de campos, cada evento de registro coincidente permanece indexado durante 30 días a partir del momento de la ingesta del evento de registro.

**nota**  
Si se crea una política de indexación de campos en una cuenta de supervisión, esa política no se utilizará para los grupos de registros de las cuentas de origen vinculadas. Una política de índice de campos solo se aplica a la cuenta en la que se creó.

En el resto de los temas de esta sección se explica cómo crear índices de campo. Para obtener información sobre cómo hacer referencia a los índices de campo en las consultas, consulte [filterIndex](CWL_QuerySyntax-FilterIndex.md) y [filter](CWL_QuerySyntax-Filter.md). 

**Topics**
+ [Sintaxis y cuotas del índice de campos](CloudWatchLogs-Field-Indexing-Syntax.md)
+ [Creación de una política de indexación de campos a nivel de cuenta](CloudWatchLogs-Field-Indexing-CreateAccountLevel.md)
+ [Creación de una política de indexación de campos a nivel de grupo de registros](CloudWatchLogs-Field-Indexing-CreateLogGroupLevel.md)
+ [Selección de grupos de registros al crear una consulta](Field-Indexing-Selection.md)
+ [Efectos de eliminar una política de indexación de campos](CloudWatchLogs-Field-Indexing-Deletion.md)

# Sintaxis y cuotas del índice de campos
<a name="CloudWatchLogs-Field-Indexing-Syntax"></a>

Los índices de campos se crean mediante la creación de *políticas de índices de campos*. Se pueden crear políticas de indexación de cuenta que se apliquen a toda la cuenta y también se pueden crear políticas que se apliquen solo a un grupo de registros. Para las políticas de indexación para toda la cuenta, se puede tener una que se aplique a todos los grupos de registro de la cuenta. También se pueden crear políticas de indexación 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 registro. Si se tienen 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. Del mismo modo, puede crear políticas de indexación a nivel de cuenta que se apliquen a una combinación de nombre y tipo de fuente de datos específica. Solo se puede crear una política de cuenta por combinación de nombre y tipo de fuente de datos. 

Las políticas de indexación de campos a nivel de grupo de registros anulan las políticas de índice de campos a nivel de cuenta, que se aplican al grupo de registros en su conjunto (por ejemplo, las políticas a nivel de cuenta sin criterios de selección o con criterios de selección basados en el prefijo del nombre del grupo de registros). Las políticas a nivel de cuenta que coincidan a nivel de eventos de registro (por ejemplo, para una combinación de nombre y tipo de fuente de datos determinada) se aplicarán además de las políticas que coincidan con el grupo de registro en su conjunto. Si crea una política de índice a nivel de grupo de registros, ese grupo de registros no utilizará políticas a nivel de cuenta que coincidan a nivel de grupo de registros.

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 40 políticas de indexación a nivel de cuenta, de las cuales 20 pueden usar criterios de selección de prefijos de nombres de grupos de registros y 20 pueden usar criterios de selección basados en la fuente de datos. Si se tienen 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 se tiene una política filtrada para registrar los grupos que comienzan por `my-log`, no se puede tener otra política de indexación de campos filtrada a `my-logpprod` o `my-logging`. Del mismo modo, si tiene varias políticas de indexación a nivel de cuenta filtradas por combinaciones de nombre y tipo de fuente de datos, ninguna de ellas podrá utilizar el mismo nombre y tipo de fuente de datos. Por ejemplo, si tiene una política filtrada por el nombre `amazon_vpc` y el tipo de fuente de datos, no `flow` podrá crear otra política con esta combinación.

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 se puede crear ninguna otra política de indexación a nivel de cuenta con filtros de prefijos de nombres de grupos de registros; puede crear políticas de índice a nivel de cuenta que utilicen filtros de nombre y tipo de fuente de datos.

Cada política de indexación dispone de 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 `@`, se 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`, se debe especificar `@@userId` a fin de crear un índice para este campo.

En el caso de las políticas de indexación a nivel de cuenta con criterios de selección basados en el nombre y el tipo de la fuente de datos, se aplica una restricción adicional: todos los campos deben ser tipos de datos primitivos; las primitivas anidadas solo se admiten para las estructuras.

**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 `@`. Si se desea obtener más información sobre los campos generados, consulte [Registros y campos detectados compatibles](CWL_AnalyzeLogData-discoverable-fields.md).

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`
+ `@xraySegmentId`

Para indexar estos campos generados, no es necesario añadir un `@` extra cuando se los especifica, como ocurre con los campos personalizados que comienzan por `@`. Por ejemplo, para crear un índice de campos `@logStream`, basta con especificar `@logStream` como índice de campo.

CloudWatch Logs proporciona índices de campos predeterminados para todos los grupos de registros de la clase de registro estándar. Los índices de campo predeterminados están disponibles automáticamente para los siguientes campos: 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Los registros también proporcionan índices de campo predeterminados para determinadas combinaciones de nombres y tipos de fuentes de datos. Los índices de campo predeterminados están disponibles automáticamente para las siguientes combinaciones de nombre y tipo de fuente de datos:


| Nombre y tipo de fuente de datos | Índices de campo predeterminados | 
| --- | --- | 
|  `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`  | 

Los índices de campos predeterminados se suman a cualquier índice de campo personalizado que defina en su política. Los índices de campo predeterminados no se incluyen en la [cuota de índices de campo](#CloudWatchLogs-Field-Indexing-Syntax). 

**Campos secundarios y campos de matriz en los registros JSON**

Se pueden indexar campos que sean secundarios anidados o campos de matriz en los registros JSON.

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

Si se desea 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 tendría el siguiente aspecto:

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

En el caso del ejemplo anterior, el campo `instanceId` 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.

Por lo tanto, una consulta para este campo podría ser la siguiente:

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

# Creación de una política de indexación de campos a nivel de cuenta
<a name="CloudWatchLogs-Field-Indexing-CreateAccountLevel"></a>

Se utilizan los pasos de esta sección para crear una política de indexación de campos que se aplique a todos los grupos de registros de la cuenta o a varios grupos de registros que tengan nombres de grupos de registros que comiencen por la misma cadena.

**Creación de una política de indexación de campos a nivel de cuenta**

1. Abra la CloudWatch consola en. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. En el panel de navegación izquierdo, elija **Configuración** y, a continuación, la pestaña **Registros**.

1. En la sección **Políticas de indexación a nivel de cuenta**, seleccione **Administrar**.

1. Elija **Crear política de índice**.

1. En **Nombre de la política**, introduzca un nombre para la nueva política.

1. En **Seleccione el ámbito de la política**, realice una de las siguientes acciones:
   + Seleccione **Todos los grupos de registros estándar** para que la política de indexación se aplique a todos los grupos de registros de clase Estándar de la cuenta.
   + Elija **Grupos de registros por coincidencia de prefijos** para aplicar la política a un subconjunto de grupos de registros que tengan todos nombres que comiencen por la misma cadena. A continuación, introduzca el prefijo de estos grupos de registros en **Introduzca un nombre de prefijo**.

     Después de introducir el prefijo, puede elegir **Vista previa de los grupos de registros coincidentes con los prefijos** para confirmar que el prefijo coincide con los grupos de registros que esperaba.

     Elija **Registrar datos por fuente de datos** para aplicar la política a una combinación de nombre y tipo de fuente de datos específica. A continuación, puede seleccionar la **fuente de datos** **y el tipo** de datos en el menú desplegable. 

     Tras seleccionar el nombre y el tipo de la fuente de datos, puede seleccionar **Obtener campos** para rellenar la sección **Configurar índices y facetas de los campos** con información relevante, como los campos disponibles, los grupos de registros incluidos y los índices de campos predeterminados y personalizados.

1. En el caso de **Configuración de un campo de indexación personalizado**, elija **Agregación de ruta de campo** para introducir el primer campo que se va a indexar.

   A continuación, introduzca la cadena que desee utilizar como valor del nombre del campo o seleccione un campo en el menú desplegable. Debe coincidir exactamente con las mayúsculas y minúsculas que aparecen en los eventos de registro. Por ejemplo, si sus eventos de registro incluyen `requestId`, se debe ingresar `requestId` aquí. `RequestId`, `requestID` y `request Id` no coincidirían.

   Si se desea indexar un campo de registro personalizado que comience por el carácter `@`, se debe incluir un carácter `@` adicional al introducir la cadena de índice. Por ejemplo, si se tiene un campo de registro personalizado `@emailname`, se debe introducir `@@emailname` en el cuadro **Agregar ruta de campo**.

   También puede crear índices para los `@logStream` campos `@ingestionTime` y que CloudWatch Logs genera automáticamente. Si lo hace, no tiene que añadir un `@` extra al especificarlos.

1. (Opcional) Además de especificar la ruta del campo, puede seleccionar **Establecer como una faceta** para crear el campo como una faceta.

1. Repita el paso anterior para agregar hasta 20 índices de campo.

1. Cuando haya terminado, seleccione **Create (Crear)**.

# Creación de una política de indexación de campos a nivel de grupo de registros
<a name="CloudWatchLogs-Field-Indexing-CreateLogGroupLevel"></a>

Se deben seguir los pasos de esta sección para crear una política de indexación de campos que se aplique a un único grupo de registros.

**Creación de una política de indexación de campos a nivel de grupo de registros**

1. Abra la CloudWatch consola en. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. En el panel de navegación izquierdo, elija **Logs (Registros)**, **Log groups (Grupos de registros)**.

1. Elija el nombre del grupo de registro.

1. Seleccione la pestaña **Índices de campo**.

1. Elija **Administración de índices de campos para este grupo de registros**

1. En **Administración de índices de campos a nivel de grupo de registros**, elija **Agregación de ruta de campo** para introducir el primer campo que se va a indexar.

   A continuación, introduzca la cadena que desee utilizar como valor del nombre del campo. Debe coincidir exactamente con las mayúsculas y minúsculas que aparecen en los eventos de registro. Por ejemplo, si sus eventos de registro incluyen `requestId`, se debe ingresar `requestId` aquí. `RequestId`, `requestID` y `request Id` no coincidirían.

   Si se desea indexar un campo de registro personalizado que comience por el carácter `@`, se debe incluir un carácter `@` adicional al introducir la cadena de índice. Por ejemplo, si se tiene un campo de registro personalizado `@emailname`, se debe introducir `@@emailname` en el cuadro **Agregar ruta de campo**.

   También puede crear índices para los `@logStream` campos `@ingestionTime` y que CloudWatch Logs genera automáticamente. Si lo hace, no tiene que añadir un `@` extra al especificarlos.

1. (Opcional) Además de especificar la ruta del campo, puede seleccionar **Establecer como una faceta** para crear el campo como una faceta.

1. Repita el paso anterior para agregar hasta 20 índices de campo.

1. Cuando haya terminado, elija **Save**.

# Selección de grupos de registros al crear una consulta
<a name="Field-Indexing-Selection"></a>

En esta sección se explican las diversas formas en que se pueden seleccionar grupos de registros para incluirlos en una consulta.

**Selección de grupos de registros para una consulta en la consola**

1. Abra la CloudWatch consola en. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. En el panel de navegación, elija **Registros** y luego, **Información de registros**.

1. Seleccione el idioma de consulta que desea utilizar en esta consulta. Puede elegir entre: **Logs Insights QL**, **OpenSearchPPL** o **OpenSearch SQL**.

1. Hay tres formas de seleccionar grupos de registro para la consulta:
   + Utilice el cuadro de **nombre del grupo de registros**. Este es el método de selección predeterminada. Puede introducir hasta 50 nombres de grupos de registro con este método. Si se trata de una cuenta de supervisión en CloudWatch condiciones de observación multicuenta, puede seleccionar grupos de registros en las cuentas de origen y en la cuenta de supervisión. Una sola consulta puede ejecutarse en registros de diferentes cuentas a la vez. 
   + Utilice la sección **Criterios de grupos de registros**. En esta sección, se pueden elegir grupos de registros en función del prefijo de los nombres de los grupos de registros. Se pueden incluir hasta cinco prefijos en una consulta. Se seleccionarán los grupos de registros que tengan estos prefijos en sus nombres. Como alternativa, la opción **Todos los grupos de registro** selecciona todos los grupos de registro de la cuenta. 
   + Si se trata de una cuenta de monitorización mediante la observación CloudWatch multicuenta, puede seleccionar **Todas las cuentas en el menú desplegable de cuentas** para seleccionar los grupos de registros de todas las cuentas vinculadas. Como alternativa, puede seleccionar de manera individual qué cuentas deben incluirse en esta consulta.

   Si las opciones coinciden con más de 10 000 grupos de registros, aparecerá un error que pedirá que se restrinja la selección.

1. La clase de registro predeterminada para una consulta es **Estándar**. Puede usar **Clase de registro** para cambiarla a **Infrequent access**.

**Usando el AWS CLI**

Para realizar este tipo de selecciones al iniciar una consulta desde la línea de comandos, se puede usar el comando `source` en la consulta. Para obtener más información y ejemplos, consulta [SOURCE](CWL_QuerySyntax-Source.md).

# Efectos de eliminar una política de indexación de campos
<a name="CloudWatchLogs-Field-Indexing-Deletion"></a>

Si se elimina una política de indexación de campos que ha estado en vigor durante un tiempo, ocurre lo siguiente:
+ Hasta 30 días después de la eliminación de la política, las consultas pueden seguir beneficiándose de los eventos de registro indexado.
+ Si se elimina una política de indexación a nivel de grupo de registros y ya existe una política a nivel de cuenta que se aplicaría a ese grupo de registros, la política a nivel de cuenta finalmente se aplicará a ese grupo de registros.