

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.

# Surveillance des OpenSearch journaux avec Amazon CloudWatch Logs
<a name="createdomain-configure-slow-logs"></a>

Amazon OpenSearch Service expose les OpenSearch journaux suivants via Amazon CloudWatch Logs : 
+ Journaux des erreurs
+ [Journaux lents des demandes de recherche](https://opensearch.org/docs/latest/install-and-configure/configuring-opensearch/logs/#search-request-slow-logs)
+ [Partagez les journaux lents](https://opensearch.org/docs/latest/install-and-configure/configuring-opensearch/logs/#shard-slow-logs)
+ [Journaux d'audit](audit-logs.md)

Les journaux de lenteur des partitions de recherche, les journaux lents des partitions d'indexation et les journaux d'erreurs sont utiles pour résoudre les problèmes de performance et de stabilité. Les journaux d'audit permettent de suivre l'activité des utilisateurs à des fins de conformité. Par défaut, tous les journaux sont *désactivés*. Si cette option est activée, la [ CloudWatch tarification standard](https://aws.amazon.com/cloudwatch/pricing/) s'applique.

**Note**  
Les journaux d'erreurs ne sont disponibles que pour les versions 5.1 OpenSearch et ultérieures d'Elasticsearch. Les journaux lents sont disponibles pour toutes les versions d'Elasticsearch OpenSearch et pour toutes les versions.

Pour ses journaux, OpenSearch utilise [Apache Log4j 2](https://logging.apache.org/log4j/2.x/) et ses niveaux de journalisation intégrés (du plus faible au plus sévère) de`TRACE`,`DEBUG`,, `INFO` `WARN``ERROR`, et. `FATAL`

Si vous activez les journaux d'erreurs, le OpenSearch Service publie des lignes de journal de `WARN``ERROR`, et `FATAL` vers CloudWatch. OpenSearch Le service publie également plusieurs exceptions par rapport au `DEBUG` niveau, notamment les suivantes :
+ `org.opensearch.index.mapper.MapperParsingException`
+ `org.opensearch.index.query.QueryShardException`
+ `org.opensearch.action.search.SearchPhaseExecutionException`
+ `org.opensearch.common.util.concurrent.OpenSearchRejectedExecutionException`
+ `java.lang.IllegalArgumentException`

Les journaux d'erreurs favorisent la résolution des problèmes dans de nombreuses situations, y compris les suivantes :
+ Problèmes de compilation de scripts Painless
+ Requêtes non valides
+ Indexation des problèmes
+ Échecs d'instantané
+ Échecs de migration d'Index State Management
**Note**  
Toutes les erreurs ne sont pas signalées dans les journaux d'erreurs.

**Note**  
OpenSearch Le service n'enregistre pas toutes les erreurs qui se produisent.

**Topics**
+ [Activation de la publication des journaux (console)](#createdomain-configure-slow-logs-console)
+ [Activation de la publication des journaux (AWS CLI)](#createdomain-configure-slow-logs-cli)
+ [Activation de la publication des journaux (AWS SDKs)](#createdomain-configure-slow-logs-sdk)
+ [Activation de la publication des journaux (CloudFormation)](#createdomain-configure-slow-logs-cfn)
+ [Définition des seuils de lenteur de journalisation des demandes de recherche](#createdomain-configure-search-request-slow-logs)
+ [Définition des seuils de lenteur de journalisation des partitions](#createdomain-configure-slow-logs-indices)
+ [Tester les journaux lents](#createdomain-configure-slow-logs-testing)
+ [Affichage des journaux](#createdomain-configure-slow-logs-viewing)

## Activation de la publication des journaux (console)
<a name="createdomain-configure-slow-logs-console"></a>

La console OpenSearch de service est le moyen le plus simple d'activer la publication de journaux sur CloudWatch.

**Pour activer la publication du journal sur CloudWatch (console)**

1. Accédez à [aws.amazon.com](https://aws.amazon.com/), puis choisissez **Se connecter et entrez vos informations d'**identification.

1. Sous **Analytics**, sélectionnez **Amazon OpenSearch Service**.

1. Sélectionnez le domaine que vous souhaitez mettre à jour.

1. Dans l'onglet **Logs (Journaux)**, sélectionnez un type de journal et choisissez **Enable (Activer)**.

1. Créez un nouveau groupe de CloudWatch journaux ou choisissez-en un existant.
**Note**  
Si vous prévoyez d'activer plusieurs journaux, il est recommandé de publier chacun d'eux dans son propre groupe de journaux. Cette séparation rend plus facile l'analyse des journaux.

1. Choisissez une stratégie d'accès qui contient les autorisations appropriées ou créez une stratégie à l'aide du code JSON que la console fournit :

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "es.amazonaws.com"
         },
         "Action": [
           "logs:PutLogEvents",
           "logs:CreateLogStream"
         ],
         "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:cw_log_group_name:*"
       }
     ]
   }
   ```

------

   Nous vous recommandons d'ajouter les clés de condition `aws:SourceAccount` et `aws:SourceArn` à la stratégie pour vous protéger contre [le problème du député confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Le compte source est le propriétaire du domaine et l'ARN source est l'ARN du domaine. Votre domaine doit être sur le logiciel de service R20211203 ou plus récent afin d'ajouter ces clés de condition.

   Par exemple, vous pouvez ajouter la clé de condition suivante à la stratégie :

   ```
   "Condition": {
       "StringEquals": {
           "aws:SourceAccount": "account-id"
       },
       "ArnLike": {
           "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name"
       }
   }
   ```
**Important**  
CloudWatch Logs prend en charge [10 politiques de ressources par région](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html). Si vous envisagez d'activer les journaux pour plusieurs domaines de OpenSearch service, vous devez créer et réutiliser une politique plus large incluant plusieurs groupes de journaux afin d'éviter d'atteindre cette limite. Pour savoir comment mettre à jour votre politique , consultez [Activation de la publication des journaux (AWS CLI)](#createdomain-configure-slow-logs-cli).

1. Sélectionnez **Activer**.

   L'état de votre domaine passe de **Actif** à **En cours de traitement**. L'état doit revenir à **Actif** avant que la publication du journal ne soit activée. Cette modification prend généralement 30 minutes, mais peut prendre plus de temps en fonction de la configuration de votre domaine.

Si vous avez activé l'un des journaux lents des partitions, consultez[Définition des seuils de lenteur de journalisation des partitions](#createdomain-configure-slow-logs-indices). Si vous avez activé les journaux d'audit, consultez [Étape 2 : activer les journaux d'audit dans les OpenSearch tableaux de bord](audit-logs.md#audit-log-dashboards-ui). Si vous avez activé uniquement des journaux d'erreurs, vous n'avez pas besoin d'effectuer d'étapes de configuration supplémentaires. 

## Activation de la publication des journaux (AWS CLI)
<a name="createdomain-configure-slow-logs-cli"></a>

Avant de pouvoir activer la publication des journaux, vous avez besoin d'un groupe de CloudWatch journaux. Si vous n'en possédez pas déjà un, vous pouvez en créer un à l'aide de la commande suivante :

```
aws logs create-log-group --log-group-name my-log-group
```

Entrez la commande suivante pour trouver l'ARN du groupe de journaux, puis *notez-le* :

```
aws logs describe-log-groups --log-group-name my-log-group
```

Vous pouvez désormais autoriser le OpenSearch service à écrire dans le groupe de journaux. Vous devez fournir l'ARN du groupe de journaux à proximité de la fin de la commande :

```
aws logs put-resource-policy \
  --policy-name my-policy \
  --policy-document '{ "Version": "2012-10-17",		 	 	  "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com"}, "Action":[ "logs:PutLogEvents","logs:CreateLogStream"],"Resource": "cw_log_group_arn:*"}]}'
```

**Important**  
CloudWatch Logs prend en charge [10 politiques de ressources par région](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html). Si vous envisagez d'activer les journaux lents partiels pour plusieurs domaines de OpenSearch service, vous devez créer et réutiliser une politique plus large incluant plusieurs groupes de journaux afin d'éviter d'atteindre cette limite.

Si vous devez revoir cette politique ultérieurement, utilisez la commande `aws logs describe-resource-policies`. Pour mettre à jour la politique, exécutez la même commande `aws logs put-resource-policy` avec un nouveau document de politique.

Enfin, vous pouvez utiliser l'option `--log-publishing-options` pour activer la publication. La syntaxe pour l'option est la même pour les deux commandes `create-domain` et `update-domain-config`.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/createdomain-configure-slow-logs.html)

**Note**  
Si vous prévoyez d'activer plusieurs journaux, il est recommandé de publier chacun d'eux dans son propre groupe de journaux. Cette séparation rend plus facile l'analyse des journaux.

**Exemple**

L'exemple suivant permet de publier des journaux de ralentissement des partitions de recherche et d'indexation pour le domaine spécifié :

```
aws opensearch update-domain-config \
  --domain-name my-domain \
  --log-publishing-options "SEARCH_SLOW_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-log-group,Enabled=true},INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-other-log-group,Enabled=true}"
```

Pour désactiver la publication sur CloudWatch, exécutez la même commande avec`Enabled=false`.

Si vous avez activé l'un des journaux lents des partitions, consultez[Définition des seuils de lenteur de journalisation des partitions](#createdomain-configure-slow-logs-indices). Si vous avez activé les journaux d'audit, consultez [Étape 2 : activer les journaux d'audit dans les OpenSearch tableaux de bord](audit-logs.md#audit-log-dashboards-ui). Si vous avez activé uniquement des journaux d'erreurs, vous n'avez pas besoin d'effectuer d'étapes de configuration supplémentaires.

## Activation de la publication des journaux (AWS SDKs)
<a name="createdomain-configure-slow-logs-sdk"></a>

Avant de pouvoir activer la publication de journaux, vous devez d'abord créer un groupe de CloudWatch journaux, obtenir son ARN et autoriser le OpenSearch service à y écrire. Les opérations pertinentes sont documentées dans le manuel [Amazon CloudWatch Logs API Reference](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/) :
+ `CreateLogGroup`
+ `DescribeLogGroup`
+ `PutResourcePolicy`

Vous pouvez accéder à ces opérations à l'aide du [AWS SDKs](https://aws.amazon.com/tools/#sdk).

 AWS SDKs (sauf Android et iOS SDKs) prennent en charge toutes les opérations définies dans le [Amazon OpenSearch Service API Reference](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/Welcome.html), y compris l'`--log-publishing-options`option pour `CreateDomain` et`UpdateDomainConfig`.

Si vous avez activé l'un des journaux lents des partitions, consultez[Définition des seuils de lenteur de journalisation des partitions](#createdomain-configure-slow-logs-indices). Si vous avez activé uniquement des journaux d'erreurs, vous n'avez pas besoin d'effectuer d'étapes de configuration supplémentaires.

## Activation de la publication des journaux (CloudFormation)
<a name="createdomain-configure-slow-logs-cfn"></a>

Dans cet exemple, nous avons l'habitude de CloudFormation créer un groupe de journaux appelé`opensearch-logs`, d'attribuer les autorisations appropriées, puis de créer un domaine dans lequel la publication des journaux est activée pour les journaux des applications, les journaux lents de recherche sur les partitions de recherche et l'indexation des journaux lents.

Avant de pouvoir activer la publication des journaux, vous devez créer un groupe de CloudWatch journaux :

```
Resources:
  OpenSearchLogGroup:
    Type: AWS::Logs::LogGroup
    Properties: 
      LogGroupName: opensearch-logs
Outputs:
  Arn:
    Value:
      'Fn::GetAtt':
        - OpenSearchLogGroup
        - Arn
```

Le modèle génère l'ARN du groupe de journaux. Dans ce cas, l'ARN est `arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs`.

À l'aide de l'ARN, créez une politique de ressources qui autorise le OpenSearch service à écrire dans le groupe de journaux :

```
Resources:
 OpenSearchLogPolicy:
   Type: AWS::Logs::ResourcePolicy
   Properties:
     PolicyName: my-policy
     PolicyDocument: "{ \"Version\": \"2012-10-17\", \"Statement\": [{ \"Sid\": \"\", \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"es.amazonaws.com\"}, \"Action\":[ \"logs:PutLogEvents\",\"logs:CreateLogStream\"],\"Resource\": \"arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs:*\"}]}"
```

Enfin, créez la CloudFormation pile suivante, qui génère un domaine OpenSearch de service avec publication de journaux. La politique d'accès permet Compte AWS à l'utilisateur d'envoyer toutes les requêtes HTTP au domaine.

```
Resources:
  OpenSearchServiceDomain:
    Type: "AWS::OpenSearchService::Domain"
    Properties:
      DomainName: my-domain
      EngineVersion: "OpenSearch_1.0"
      ClusterConfig:
        InstanceCount: 2
        InstanceType: "r6g.xlarge.search"
        DedicatedMasterEnabled: true
        DedicatedMasterCount: 3
        DedicatedMasterType: "r6g.xlarge.search"
      EBSOptions:
        EBSEnabled: true
        VolumeSize: 10
        VolumeType: "gp2"
      AccessPolicies:
        Version: "2012-10-17"		 	 	 
        Statement:
            Effect: "Allow"
            Principal:
                AWS: "arn:aws:iam::123456789012:user/es-user"
            Action: "es:*"
            Resource: "arn:aws:es:us-east-1:123456789012:domain/my-domain/*"
      LogPublishingOptions:
        ES_APPLICATION_LOGS:
          CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs"
          Enabled: true
        SEARCH_SLOW_LOGS:
          CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs"
          Enabled: true
        INDEX_SLOW_LOGS:
          CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs"
          Enabled: true
```

Pour obtenir des informations détaillées sur la syntaxe, consultez les [options de publication de journaux](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-logpublishingoption.html) dans le *Guide de l'utilisateur CloudFormation .*

## Définition des seuils de lenteur de journalisation des demandes de recherche
<a name="createdomain-configure-search-request-slow-logs"></a>

Les [journaux de lenteur des demandes](https://opensearch.org/docs/latest/install-and-configure/configuring-opensearch/logs/#search-request-slow-logs) de recherche sont disponibles pour les recherches sur les domaines de OpenSearch service exécutés sur les versions 2.13 et ultérieures. Les seuils de lenteur des demandes de recherche sont configurés pour le temps total pris par les demandes. Cela est différent des journaux de lenteur des demandes de partition, qui sont configurés en fonction du temps nécessaire à chaque partition.

Vous pouvez définir les journaux lents des demandes de recherche à l'aide des paramètres du cluster. Cela diffère des journaux partiels lents, que vous activez à l'aide des paramètres d'index. Par exemple, vous pouvez définir les paramètres suivants via l' OpenSearch API REST :

```
PUT domain-endpoint/_cluster/settings
{
  "transient": {
    "cluster.search.request.slowlog.threshold.warn": "5s",
    "cluster.search.request.slowlog.threshold.info": "2s"
  }
}
```

**Note**  
Le `PUT /_cluster/settings` point de terminaison est restreint dans Amazon OpenSearch Service. L'envoi de cette demande renverra le message d'erreur suivant : `Your request: '/_cluster/settings' payload is not allowed.` pour configurer les seuils de lenteur des partitions, utilisez plutôt des paramètres au niveau de l'index. Par exemple :  

```
PUT domain-endpoint/index/_settings
{
  "index.search.slowlog.threshold.query.warn": "5s",
  "index.search.slowlog.threshold.query.info": "2s"
}
```

## Définition des seuils de lenteur de journalisation des partitions
<a name="createdomain-configure-slow-logs-indices"></a>

OpenSearch désactive les [journaux lents des partitions par défaut](https://opensearch.org/docs/latest/install-and-configure/configuring-opensearch/logs/#shard-slow-logs). Une fois que vous avez activé la *publication* des journaux lents des partitions sur CloudWatch, vous devez toujours spécifier des seuils de journalisation pour chaque OpenSearch index. Ces seuils définissent précisément ce qui doit être journalisé et à quel niveau de journal.

Par exemple, vous pouvez définir les paramètres suivants via l' OpenSearch API REST :

```
PUT domain-endpoint/index/_settings
{
  "index.search.slowlog.threshold.query.warn": "5s",
  "index.search.slowlog.threshold.query.info": "2s"
}
```

## Tester les journaux lents
<a name="createdomain-configure-slow-logs-testing"></a>

Pour vérifier que les journaux lents des requêtes de recherche et des partitions sont publiés correctement, envisagez de commencer par des valeurs très faibles pour vérifier que les journaux apparaissent CloudWatch, puis d'augmenter les seuils à des niveaux plus utiles.

Si les journaux ne s'affichent pas, vérifiez les éléments suivants :
+ Le groupe de CloudWatch logs existe-t-il ? Vérifiez la CloudWatch console.
+ Le OpenSearch service est-il autorisé à écrire dans le groupe de journaux ? Vérifiez la console OpenSearch de service.
+ Le domaine OpenSearch de service est-il configuré pour publier dans le groupe de journaux ? Vérifiez la console OpenSearch de service, utilisez l' AWS CLI `describe-domain-config`option ou appelez à `DescribeDomainConfig` l'aide de l'un des SDKs.
+ Les seuils de OpenSearch journalisation sont-ils suffisamment bas pour que vos demandes les dépassent ? 

  Pour revoir les seuils de lenteur de votre demande de recherche pour un domaine, utilisez la commande suivante :

  ```
  GET domain-endpoint/_cluster/settings?flat_settings
  ```

  Pour revoir les seuils de lenteur de journalisation de votre partition pour un index, utilisez la commande suivante :

  ```
  GET domain-endpoint/index/_settings?pretty
  ```

Si vous souhaitez désactiver les journaux lents pour un index, rétablissez les seuils que vous avez modifiés aux valeurs par défaut de `-1`.

La désactivation de la publication à l' CloudWatch aide de la console de OpenSearch service AWS CLI *n'arrête pas* la génération OpenSearch de journaux ; elle arrête uniquement la *publication* de ces journaux. Assurez-vous de vérifier les paramètres de votre index si vous n'avez plus besoin des journaux lents des partitions, et les paramètres de votre domaine si vous n'avez plus besoin des journaux lents des demandes de recherche.

## Affichage des journaux
<a name="createdomain-configure-slow-logs-viewing"></a>

L'affichage de l'application et la lenteur des connexions CloudWatch sont identiques à l'affichage de n'importe quel autre CloudWatch journal. Pour plus d'informations, consultez la section [Afficher les données des CloudWatch journaux](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData) *dans le guide de l'utilisateur Amazon Logs*.

Voici quelques éléments à prendre en compte pour visualiser les journaux :
+ OpenSearch Le service ne publie que les 255 000 premiers caractères de chaque ligne sur CloudWatch. Tout le contenu restant est tronqué. Pour les journaux d'audit, il s'agit de 10 000 caractères par message. 
+ Dans CloudWatch, les noms des flux de journaux ont les suffixes`-index-slow-logs`, `-search-slow-logs``-application-logs`, et `-audit-logs` pour aider à identifier leur contenu.