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
Amazon OpenSearch Service expose les OpenSearch journaux suivants via Amazon CloudWatch Logs :
-
Journaux des erreurs
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
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 2TRACE
,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
OpenSearch Le service n'enregistre pas toutes les erreurs qui se produisent.
Rubriques
- Activation de la publication des journaux (console)
- Activation de la publication des journaux (AWS CLI)
- Activation de la publication des journaux (AWS SDKs)
- Activation de la publication des journaux (CloudFormation)
- Définition des seuils de lenteur de journalisation des demandes de recherche
- Définition des seuils de lenteur de journalisation des partitions
- Tester les journaux lents
- Affichage des journaux
Activation de la publication des journaux (console)
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)
-
Accédez à https://aws.amazon.com
, puis choisissez Se connecter à la console. -
Sous Analytics, sélectionnez Amazon OpenSearch Service.
-
Sélectionnez le domaine que vous souhaitez mettre à jour.
-
Dans l'onglet Logs (Journaux), sélectionnez un type de journal et choisissez Enable (Activer).
-
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.
-
Choisissez une politique d'accès contenant les autorisations appropriées ou créez une politique à l'aide de celles JSON fournies par la console :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": "
cw_log_group_arn
:*" } ] }Nous vous recommandons d'ajouter les clés de condition
aws:SourceAccount
etaws:SourceArn
à la stratégie pour vous protéger contre le problème du député confus. Le compte source est le propriétaire du domaine et la source ARN est ARN celle 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. 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).
-
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, consultezDéfinition des seuils de lenteur de journalisation des partitions. Si vous avez activé les journaux d'audit, consultez Étape 2 : activer les journaux d'audit dans les OpenSearch tableaux de bord. 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)
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 le groupe de journauxARN, 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 les groupes de journaux ARN vers 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. 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
.
Paramètre | Valeurs valides |
---|---|
--log-publishing-options |
SEARCH_SLOW_LOGS={CloudWatchLogsLogGroupArn= |
INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn= |
|
ES_APPLICATION_LOGS={CloudWatchLogsLogGroupArn= |
|
AUDIT_LOGS={CloudWatchLogsLogGroupArn= |
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 avecEnabled=false
.
Si vous avez activé l'un des journaux lents des partitions, consultezDéfinition des seuils de lenteur de journalisation des partitions. Si vous avez activé les journaux d'audit, consultez Étape 2 : activer les journaux d'audit dans les OpenSearch tableaux de bord. 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)
Avant de pouvoir activer la publication de journaux, vous devez d'abord créer un groupe de CloudWatch journauxARN, l'obtenir et autoriser le OpenSearch service à y écrire. Les opérations pertinentes sont documentées dans le Amazon CloudWatch Logs API Reference :
-
CreateLogGroup
-
DescribeLogGroup
-
PutResourcePolicy
Vous pouvez accéder à ces opérations à l'aide du AWS SDKs
AWS SDKs(sauf Android et iOSSDKs) prennent en charge toutes les opérations définies dans le Amazon OpenSearch Service API Reference, y compris l'--log-publishing-options
option pour CreateDomain
etUpdateDomainConfig
.
Si vous avez activé l'un des journaux lents des partitions, consultezDéfinition des seuils de lenteur de journalisation des partitions. 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)
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 le nom ARN du groupe de journaux. Dans ce cas, le champ ARN est arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs
.
À l'aide duARN, 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 de faire toutes les HTTP demandes 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 dans le Guide de l'utilisateur AWS CloudFormation .
Définition des seuils de lenteur de journalisation des demandes de recherche
Les journaux de lenteur des demandes
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 par le biais de OpenSearch REST API :
PUT
domain-endpoint
/_cluster/settings { "transient": { "cluster.search.request.slowlog.threshold.warn": "5s", "cluster.search.request.slowlog.threshold.info": "2s" } }
Définition des seuils de lenteur de journalisation des partitions
OpenSearch désactive les journaux lents des partitions par défaut
Par exemple, vous pouvez définir ces paramètres par le biais de OpenSearch REST API :
PUT
domain-endpoint
/index
/_settings { "index.search.slowlog.threshold.query.warn": "5s", "index.search.slowlog.threshold.query.info": "2s" }
Tester les journaux lents
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 desSDKs. -
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_settingsPour 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 pour CloudWatch utiliser 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
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 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.