

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Créez des index de champs pour améliorer les performances des requêtes et réduire le volume de numérisation
<a name="CloudWatchLogs-Field-Indexing"></a>

Vous pouvez créer des *index des* champs de votre journal des événements pour des recherches efficaces basées sur l'égalité. Lorsque vous utilisez ensuite un index de champ dans une requête CloudWatch Logs Insights, la requête tente d'ignorer le traitement des événements du journal dont on sait qu'ils n'incluent pas le champ indexé. Cela réduit le volume de numérisation de vos requêtes qui utilisent des index de champs, ce qui permet de renvoyer des résultats plus rapidement. Cela peut vous aider à rechercher rapidement des pétaoctets de journaux au total dans des milliers de groupes de journaux et à affiner les journaux pertinents plus rapidement. Les bons champs à indexer sont ceux que vous devez souvent rechercher. Les champs dont la cardinalité des valeurs est élevée sont également de bons candidats pour les index de champs, car une requête utilisant ces index de champs se terminera plus rapidement car cela limite les événements du journal qui sont mis en correspondance avec la valeur cible.

Supposons, par exemple, que vous ayez créé un index de champ pour`requestId`. Ensuite, toute requête CloudWatch Logs Insights sur ce groupe de journaux qui inclut `requestId = value` ou `requestId IN [value, value, ...]` tentera de traiter uniquement les événements du journal dont on sait qu'ils contiennent ce champ indexé et la valeur demandée, et que CloudWatch Logs a détecté une valeur pour ce champ dans le passé.

Vous pouvez également tirer parti de vos index de champs pour créer des requêtes efficaces portant sur un plus grand nombre de groupes de journaux. Lorsque vous utilisez la `filterIndex` commande dans votre requête au lieu de la `filter` commande elle-même, celle-ci est exécutée sur des groupes de journaux sélectionnés sur des événements de journal comportant des index de champs. Ces requêtes peuvent analyser jusqu'à 10 000 groupes de journaux, que vous choisissez en spécifiant jusqu'à cinq préfixes de nom de groupe de journaux. S'il s'agit d'un compte de surveillance dans CloudWatch le domaine de l'observabilité entre comptes, vous pouvez choisir tous les comptes sources ou spécifier des comptes sources individuels pour sélectionner les « groupes de journaux ».

Les champs indexés distinguent les majuscules et minuscules. Par exemple, un index de champ de `RequestId` ne correspondra pas à un événement de journal contenant`requestId`.

Les index de champs ne sont pris en charge que pour les formats de journaux structurés JSON et les journaux de service.

CloudWatch Logs fournit des index de champs par défaut pour tous les groupes de journaux de la classe de journaux standard. Les index de champs par défaut sont automatiquement disponibles pour les champs suivants : 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Logs fournit également des index de champs par défaut pour certaines combinaisons de noms et de types de sources de données. Les index de champs par défaut sont automatiquement disponibles pour les combinaisons de nom et de type de source de données suivantes :


| Nom et type de source de données | Index de champs par défaut | 
| --- | --- | 
|  `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`  | 

Les index de champs par défaut s'ajoutent aux index de champs personnalisés que vous définissez dans votre politique. Les index de champs par défaut ne sont pas pris en compte dans votre [quota d'index de champs](CloudWatchLogs-Field-Indexing-Syntax.md). 

CloudWatch Consigne uniquement les événements du journal ingérés après la création d'une politique d'index. Il n'indexe pas les événements du journal ingérés avant la création de la politique. Une fois que vous avez créé un index de champ, chaque événement de journal correspondant reste indexé pendant 30 jours à compter de la date d'ingestion de l'événement de journal.

**Note**  
Si vous créez une politique d'index de champs dans un compte de surveillance, cette politique n'est pas utilisée pour les groupes de journaux des comptes source liés. Une politique d'indexation des champs s'applique uniquement au compte sur lequel elle a été créée.

Les autres rubriques de cette section expliquent comment créer des index de champs. Pour plus d'informations sur la référence aux index de champs dans vos requêtes, reportez-vous aux sections [Index des filtres](CWL_QuerySyntax-FilterIndex.md) et[filtre](CWL_QuerySyntax-Filter.md). 

**Topics**
+ [Syntaxe et quotas d'index de champs](CloudWatchLogs-Field-Indexing-Syntax.md)
+ [Création d'une politique d'indexation des champs au niveau du compte](CloudWatchLogs-Field-Indexing-CreateAccountLevel.md)
+ [Création d'une politique d'index de champs au niveau du groupe de journaux](CloudWatchLogs-Field-Indexing-CreateLogGroupLevel.md)
+ [Options de sélection de groupes de journaux lors de la création d'une requête](Field-Indexing-Selection.md)
+ [Effets de la suppression d'une politique d'index de champs](CloudWatchLogs-Field-Indexing-Deletion.md)

# Syntaxe et quotas d'index de champs
<a name="CloudWatchLogs-Field-Indexing-Syntax"></a>

Vous créez des index de champs en créant des *politiques d'index de champs*. Vous pouvez créer des politiques d'index au niveau du compte qui s'appliquent à l'ensemble de votre compte, et vous pouvez également créer des politiques qui ne s'appliquent qu'à un seul groupe de journaux. Pour les politiques d'indexation applicables à l'ensemble du compte, vous pouvez en définir une qui s'applique à tous les groupes de journaux du compte. Vous pouvez également créer des politiques d'index au niveau du compte qui s'appliquent à un sous-ensemble de groupes de journaux du compte, sélectionnés par les préfixes de leurs noms de groupes de journaux. Si vous avez plusieurs politiques au niveau du compte dans le même compte, les préfixes des noms de groupes de journaux associés à ces politiques ne peuvent pas se chevaucher. De même, vous pouvez créer des politiques d'index au niveau du compte qui s'appliquent à une combinaison de nom et de type de source de données spécifique. Une seule politique de compte peut être créée par combinaison de nom et de type de source de données. 

Les politiques d'index de champs au niveau du groupe de journaux remplacent les politiques d'index de champs au niveau du compte : elles s'appliquent au groupe de journaux dans son ensemble (par exemple, les politiques au niveau du compte sans critères de sélection ou avec des critères de sélection basés sur le préfixe du nom du groupe de journaux). Les politiques au niveau du compte qui correspondent au niveau des événements du journal (par exemple, pour une combinaison de nom et de type de source de données donnée) s'appliqueront en plus des politiques correspondant au groupe de journaux dans son ensemble. Si vous créez une politique d'index au niveau du groupe de journaux, ce groupe de journaux n'utilise pas de politiques au niveau du compte qui correspondent au niveau du groupe de journaux.

Les correspondances entre les événements du journal et les noms des index de champs distinguent les majuscules et minuscules. Par exemple, un index de champ de `RequestId` ne correspondra pas à un événement de journal contenant`requestId`.

Vous pouvez avoir jusqu'à 40 politiques d'index au niveau du compte, dont 20 peuvent utiliser des critères de sélection du préfixe du nom du groupe de journaux et 20 peuvent utiliser des critères de sélection basés sur les sources de données. Si plusieurs politiques d'index au niveau du compte sont filtrées en fonction des préfixes de nom de groupe de journaux, aucune d'entre elles ne peut utiliser des préfixes de nom de groupe de journaux identiques ou des préfixes de nom de groupe de journaux qui se chevauchent. Par exemple, si vous avez une politique filtrée pour enregistrer les groupes commençant par`my-log`, vous ne pouvez pas filtrer une autre politique d'index de champs sur `my-logpprod` ou`my-logging`. De même, si plusieurs politiques d'index au niveau du compte sont filtrées en fonction des combinaisons de nom et de type de source de données, aucune d'entre elles ne peut utiliser le même nom et le même type de source de données. Par exemple, si vous avez une politique filtrée selon le nom `amazon_vpc` et le type de source de données de la source de données, `flow` vous ne pouvez pas créer une autre politique avec cette combinaison.

Si votre politique d'index au niveau du compte ne comporte aucun préfixe de nom et s'applique à tous les groupes de journaux, aucune autre politique d'index au niveau du compte avec des filtres de préfixes de nom de groupe de journaux ne peut être créée ; vous pouvez créer des politiques d'index au niveau du compte qui utilisent des filtres de nom et de type de source de données.

Chaque politique d'indice comporte les quotas et restrictions suivants :
+ Jusqu'à 20 champs peuvent être inclus dans la politique.
+ Chaque nom de champ peut comporter jusqu'à 100 caractères.
+ Pour créer un index d'un champ personnalisé dans vos groupes de journaux commençant par`@`, vous devez spécifier le champ avec un extra `@` au début du nom du champ. Par exemple, si les événements de votre journal incluent un champ nommé`@userId`, vous `@@userId` devez spécifier de créer un index pour ce champ.

Pour les politiques d'indexation au niveau du compte avec le nom de la source de données et les critères de sélection basés sur le type, une restriction supplémentaire s'applique : tous les champs doivent être des types de données primitifs, les primitives imbriquées ne sont prises en charge que pour les structures.

**Champs générés et champs réservés**

CloudWatch Logs Insights génère automatiquement des champs système pour chaque événement du journal. Ces champs générés sont préfixés par. `@` Pour plus d'informations sur les champs générés, consultez[Journaux pris en charge et champs découverts](CWL_AnalyzeLogData-discoverable-fields.md).

Parmi ces champs générés, les suivants sont pris en charge pour être utilisés comme index de champs :
+ `@logStream`
+ `@ingestionTime`
+ `@requestId`
+ `@type`
+ `@initDuration`
+ `@duration`
+ `@billedDuration`
+ `@memorySize`
+ `@maxMemoryUsed`
+ `@xrayTraceId`
+ `@xraySegmentId`

Pour indexer ces champs générés, il n'est pas nécessaire d'en ajouter un `@` autre lorsque vous les spécifiez, comme vous devez le faire pour les champs personnalisés commençant par`@`. Par exemple, pour créer un index de champ pour`@logStream`, il suffit de le spécifier `@logStream` comme index de champ.

CloudWatch Logs fournit des index de champs par défaut pour tous les groupes de journaux de la classe de journaux standard. Les index de champs par défaut sont automatiquement disponibles pour les champs suivants : 
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Logs fournit également des index de champs par défaut pour certaines combinaisons de noms et de types de sources de données. Les index de champs par défaut sont automatiquement disponibles pour les combinaisons de nom et de type de source de données suivantes :


| Nom et type de source de données | Index de champs par défaut | 
| --- | --- | 
|  `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`  | 

Les index de champs par défaut s'ajoutent aux index de champs personnalisés que vous définissez dans votre politique. Les index de champs par défaut ne sont pas pris en compte dans votre [quota d'index de champs](#CloudWatchLogs-Field-Indexing-Syntax). 

**Champs enfants et champs de tableau dans les journaux JSON**

Vous pouvez indexer des champs qui sont des champs enfants ou des champs matriciels imbriqués dans les journaux JSON.

Par exemple, vous pouvez créer un index du champ `accessKeyId` enfant dans le `userIdentity` champ de ce journal :

```
{
    "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"
                }
            }]
        }
    }
}
```

Pour créer ce champ, vous devez y faire référence à l'aide de la notation par points (`userIdentity.accessKeyId`) à la fois lors de la création de l'index du champ et lors de sa spécification dans une requête. La requête pourrait ressembler à ceci :

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

Dans l'exemple précédent, le `instanceId` champ se trouve dans un tableau dans `requestParameters.instancesSet.items` Pour représenter ce champ à la fois lors de la création de l'index du champ et lors de l'interrogation, appelez-le car `requestParameters.instancesSet.items.0.instanceId` le 0 fait référence à la place de ce champ dans le tableau.

Une requête pour ce champ peut alors être la suivante :

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

# Création d'une politique d'indexation des champs au niveau du compte
<a name="CloudWatchLogs-Field-Indexing-CreateAccountLevel"></a>

Suivez les étapes décrites dans cette section pour créer une politique d'index de champs qui s'applique à tous les groupes de journaux du compte ou à plusieurs groupes de journaux dont les noms de groupes de journaux commencent par la même chaîne.

**Pour créer une politique d'indexation des champs au niveau du compte**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le volet de navigation de gauche, choisissez **Paramètres**, puis l'onglet **Journaux**.

1. Dans la section **Politiques d'indexation au niveau du compte**, choisissez **Gérer**.

1. Choisissez **Créer une politique d'index**.

1. Dans **Nom de la politique**, entrez le nom de votre nouvelle politique.

1. Pour **Sélectionner le champ d'application de la politique**, effectuez l'une des opérations suivantes :
   + Choisissez **Tous les groupes de journaux standard** pour que la politique d'indexation s'applique à tous les groupes de journaux de classe standard du compte.
   + Choisissez **Groupes de journaux par correspondance de préfixes** pour appliquer la politique à un sous-ensemble de groupes de journaux dont les noms commencent tous par la même chaîne. Entrez ensuite le préfixe de ces groupes de journaux dans **Entrez un nom de préfixe**.

     Après avoir saisi votre préfixe, vous pouvez choisir **Prévisualiser les groupes de journaux correspondant au préfixe** pour confirmer que votre préfixe correspond aux groupes de journaux que vous attendiez.

     Choisissez **Enregistrer les données par source de données** pour appliquer la politique à une combinaison de nom et de type de source de données spécifique. Vous pouvez ensuite sélectionner la **source de données** et le **type de données** dans le menu déroulant. 

     Après avoir sélectionné le nom et le type de la source de données, vous pouvez sélectionner **Obtenir des champs** pour renseigner la section **Configurer les index de champs et les facettes** avec des informations pertinentes telles que les champs disponibles, les groupes de journaux inclus, ainsi que les index de champs par défaut et personnalisés.

1. Pour la **configuration d'un champ d'index personnalisé**, choisissez **Ajouter un chemin de champ** pour saisir le premier champ à indexer.

   Entrez ensuite la chaîne à utiliser comme valeur du nom du champ ou sélectionnez un champ dans le menu déroulant. Cela doit correspondre exactement à ce qui apparaît dans le journal des événements. Par exemple, si les événements de votre journal incluent`requestId`, vous devez entrer `requestId` ici. `RequestId``requestID`, et `request Id` ne correspondrait pas.

   Si vous souhaitez indexer un champ de journal personnalisé qui commence par le `@` caractère, vous devez inclure un `@` caractère supplémentaire lorsque vous entrez la chaîne d'index. Par exemple, si vous avez un champ de journal personnalisé`@emailname`, saisissez-le `@@emailname` dans la zone **Ajouter un chemin de champ**.

   Vous pouvez également créer des index pour les `@logStream` champs `@ingestionTime` et générés automatiquement par CloudWatch Logs. Si c'est le cas, il n'est pas nécessaire d'en ajouter un supplémentaire `@` lorsque vous les spécifiez.

1. (Facultatif) En plus de spécifier le chemin du champ, vous pouvez sélectionner **Définir en tant que facette** pour créer le champ en tant que facette.

1. Répétez l'étape précédente pour ajouter jusqu'à 20 index de champs.

1. Lorsque vous avez terminé, choisissez **Créer**.

# Création d'une politique d'index de champs au niveau du groupe de journaux
<a name="CloudWatchLogs-Field-Indexing-CreateLogGroupLevel"></a>

Suivez les étapes décrites dans cette section pour créer une politique d'index de champs qui s'applique à un seul groupe de journaux.

**Pour créer une politique d'indexation des champs au niveau du groupe de journaux**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation de gauche, choisissez **Logs** (Journaux), **Log groups** (Groupes de journaux).

1. Choisissez le nom du groupe de journaux.

1. Choisissez l'onglet **Index des champs**.

1. Choisissez **Gérer les index de champs pour ce groupe de journaux**

1. Pour **Gérer les index de champs au niveau des groupes de journaux**, choisissez **Ajouter un chemin de champ** pour saisir le premier champ à indexer.

   Entrez ensuite la chaîne à utiliser comme valeur du nom du champ. Cela doit correspondre exactement à ce qui apparaît dans le journal des événements. Par exemple, si les événements de votre journal incluent`requestId`, vous devez entrer `requestId` ici. `RequestId``requestID`, et ne `request Id` correspondrait pas.

   Si vous souhaitez indexer un champ de journal personnalisé qui commence par le `@` caractère, vous devez inclure un `@` caractère supplémentaire lorsque vous entrez la chaîne d'index. Par exemple, si vous avez un champ de journal personnalisé`@emailname`, saisissez-le `@@emailname` dans la zone **Ajouter un chemin de champ**.

   Vous pouvez également créer des index pour les `@logStream` champs `@ingestionTime` et générés automatiquement par CloudWatch Logs. Si c'est le cas, il n'est pas nécessaire d'en ajouter un supplémentaire `@` lorsque vous les spécifiez.

1. (Facultatif) En plus de spécifier le chemin du champ, vous pouvez sélectionner **Définir en tant que facette** pour créer le champ en tant que facette.

1. Répétez l'étape précédente pour ajouter jusqu'à 20 index de champs.

1. Lorsque vous avez terminé, choisissez **Save**.

# Options de sélection de groupes de journaux lors de la création d'une requête
<a name="Field-Indexing-Selection"></a>

Cette section explique les différentes manières de sélectionner les groupes de journaux à inclure dans une requête.

**Pour sélectionner des groupes de journaux pour une requête dans la console**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le volet de navigation, choisissez **Journaux**, **Informations sur les journaux**.

1. Sélectionnez la langue de requête que vous souhaitez utiliser pour cette requête. Vous pouvez choisir entre **Logs Insights QL**, **OpenSearchPPL** ou **OpenSearch SQL**.

1. Il existe trois méthodes pour sélectionner des groupes de journaux pour la requête :
   + Utilisez le champ **Nom du groupe de journaux**. Il s'agit de la méthode de sélection par défaut. Vous pouvez saisir jusqu'à 50 noms de groupes de journaux avec cette méthode. S'il s'agit d'un compte de surveillance dans le CloudWatch domaine de l'observabilité entre comptes, vous pouvez sélectionner des groupes de journaux dans les comptes sources ainsi que dans le compte de surveillance. Une seule requête peut interroger les journaux de différents comptes à la fois. 
   + Utilisez la section **Critères du groupe de journaux**. Dans cette section, vous pouvez choisir des groupes de journaux en fonction du préfixe des noms de groupes de journaux. Vous pouvez inclure jusqu'à cinq préfixes dans une requête. Les groupes de journaux dont le nom contient ces préfixes seront sélectionnés. Sinon, l'option **Tous les groupes de journaux** sélectionne tous les groupes de journaux du compte. 
   + S'il s'agit d'un compte de surveillance dans CloudWatch le cadre de l'observabilité entre comptes, vous pouvez sélectionner **Tous les comptes** dans le menu déroulant des comptes pour sélectionner les groupes de journaux parmi tous les comptes associés. Vous pouvez également sélectionner individuellement les comptes à inclure pour cette requête.

   Si vos choix correspondent à plus de 10 000 groupes de journaux, un message d'erreur vous invitant à affiner votre sélection s'affichera.

1. La classe de journal par défaut pour une requête est **Standard**. Vous pouvez utiliser la **classe Log** pour la remplacer **par Accès peu fréquent.**

**En utilisant le AWS CLI**

Pour effectuer ces types de sélections lorsque vous lancez une requête depuis la ligne de commande, vous pouvez utiliser la `source` commande dans votre requête. Pour plus d’informations et d’exemples, consultez [SOURCE](CWL_QuerySyntax-Source.md).

# Effets de la suppression d'une politique d'index de champs
<a name="CloudWatchLogs-Field-Indexing-Deletion"></a>

Si vous supprimez une politique d'index de champs en vigueur depuis un certain temps, les événements suivants se produisent :
+ Jusqu'à 30 jours après la suppression de la politique, les requêtes peuvent toujours bénéficier des événements du journal indexé.
+ Si vous supprimez une politique d'index au niveau du groupe de journaux et qu'une politique au niveau du compte est déjà en place qui s'appliquerait à ce groupe de journaux, la politique au niveau du compte finira par s'appliquer à ce groupe de journaux.