Comment puis-je créer un modèle d'index dans mon cluster OpenSearch Service ?
Je souhaite créer un modèle d'index dans mon cluster Amazon OpenSearch Service.
Résolution
Prérequis :
- L'utilisateur Gestion des identités et des accès AWS (AWS IAM) doit disposer des autorisations PUT et POST pour créer un modèle d'index. Exemple de politique d'accès :
Remarque : Remplacez region par votre région AWS, account-id par votre compte AWS et domain-name par le nom de votre domaine.{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "es:ESHttpHead", "es:ESHttpPost", "es:ESHttpGet", "es:ESHttpDelete", "es:ESHttpPut" ], "Resource": "arn:aws:es:region:account-id:domain/domain-name/*" } ] } - La version de votre cluster doit autoriser les modèles d'index.
Créer le modèle d'index
Utiliser les tableaux de bord OpenSearch
Vous pouvez utiliser les tableaux de bord OpenSearch pour créer un modèle d'index pour les clusters OpenSearch Service ou Elasticsearch avec ou sans contrôle précis des accès. Pour obtenir des instructions, consultez la page Création d'un modèle d'index sur le site Web d’OpenSearch.
Utiliser les commandes curl
Pour créer un modèle d'index pour les clusters sans contrôle précis des accès, exécutez la commande suivante en fonction du type de cluster.
Clusters Elasticsearch :
curl -X POST https://elasticsearch-end-point/_plugin/kibana/api/saved_objects/index-pattern/ \ -H "kbn-xsrf: true" \ -H "content-type: application/json" \ -d '{ "attributes": { "title": "sample-index*" } }'
Remarque : Remplacez sample-index par votre nom ou modèle d’index.
Clusters OpenSearch Service :
curl -X POST https://opensearch-end-point/_dashboards/api/saved_objects/index-pattern/ \ -H "kbn-xsrf: true" \ -H "content-type: application/json" \ -d '{ "attributes": { "title": "sample-index*" } }'
Remarque : Remplacez sample-index par votre nom ou modèle d’index.
Pour les clusters dotés d'un contrôle précis des accès, procédez comme suit :
- Pour générer des cookies d'autorisation dans le fichier auth.txt, exécutez la commande suivante en fonction du type de cluster.
Clusters Elasticsearch :
Remarque : Remplacez usernameexample par votre nom d'utilisateur et passwordexample par votre mot de passe.curl -X POST https://elasticsearch-end-point/_plugin/kibana/auth/login \ -H "kbn-xsrf: true" \ -H "content-type: application/json" \ -d '{"username":"usernameexample", "password":"passwordexample"}' \ -c auth.txt
Clusters OpenSearch Service :
**Remarque :**Remplacez ** usernameexample par ** votre nom d'utilisateur et ** passwordexample par ** votre mot de passe.curl -X POST https://opensearch-end-point/_dashboards/auth/login \ -H "kbn-xsrf: true" \ -H "content-type: application/json" \ -d '{"username":"usernameexample", "password":"passwordexample"}' \ -c auth.txt - Pour soumettre la demande de création du modèle d'index, exécutez la commande suivante en fonction de votre type de cluster :
Clusters Elasticsearch :
Remarque : Remplacez sample-index par votre nom ou modèle d’index.curl -X POST https://elasticsearch-end-point/_plugin/kibana/api/saved_objects/index-pattern/test \ -H "kbn-xsrf: true" \ -H "content-type: application/json" \ -d '{ "attributes": { "title": "sample-index*" } }' \ -b auth.txt
Clusters OpenSearch Service :
Remarque : Remplacez sample-index par votre nom ou modèle d’index.curl -X POST https://opensearch-end-point/_dashboards/api/saved_objects/index-pattern/ \ -H "kbn-xsrf: true" \ -H "content-type: application/json" \ -d '{ "attributes": { "title": "sample-index*" } }' \ -b auth.txt
Utiliser Python
Prérequis :
- Mappez le rôle qui exécute le code Python au rôle de backend des clusters de contrôle précis des accès.
- Exécutez les commandes suivantes pour installer les dépendances requises :
pip install boto3 pip install opensearch-py pip install requests pip install requests-aws4auth
Exécutez la commande Python suivante pour créer le modèle d'index pour les clusters OpenSearch Service :
import boto3 import requests from requests_aws4auth import AWS4Auth host = 'https://domain-endpoint/' # include trailing / region = 'aos-region' # example us-west-1 service = 'es' credentials = boto3.Session().get_credentials() awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token) path = '_dashboards/api/saved_objects/index-pattern' # _plugin/kibana/api/saved_objects/index-pattern for es versions url = host + path payload = {"attributes":{"title":"multi-logs-*","fields":"[]"}} headers = {"Content-Type": "application/json", "osd-xsrf": "true", "security_tenant": "global" } r = requests.post (url, auth=awsauth, json=payload, headers=headers) print(r.status_code) print(r.text)
Remarque : Remplacez domain-endpoint par votre point de terminaison de domaine et aos-region par votre région. Pour les clusters Elasticsearch, remplacez _dashboards/api/saved_objects/index-pattern par _plugin/kibana/api/saved_objects/index-pattern.
Résoudre les problèmes liés à la création de modèles d'index
Vous utilisez un contrôle précis des accès avec l'authentification SAML 2.0 ou Amazon Cognito
Si le domaine de votre cluster utilise SAML 2.0 ou Amazon Cognito pour l'authentification, créez un utilisateur interne pour gérer le modèle d'index.
Remarque : Pour les clusters pour lesquels vous avez activé un contrôle précis des accès, l'utilisateur doit disposer des autorisations ESHttpPut et ESHttpPost pour créer un modèle d'index.
Vous ne pouvez pas créer le modèle d'index dans le locataire global
Par défaut, les tableaux de bord OpenSearch crée des modèles d'index sous le locataire Global. Pour créer un modèle d'index en dehors du locataire global, exécutez la commande suivante :
curl -s -X POST https://opensearch-end-point/_dashboards/api/saved_objects/index-pattern/sample-index -d '{"attributes": {"title": "sample-index*"}}' \ -H "osd-xsrf:true" \ -H "securitytenant: private" \ -H "content-type:application/json" \ -b auth.txt
Remarque : Remplacez sample-index par votre nom ou modèle d’index.
Vous n'avez pas inclus l'alias .kibana dans le cluster
Pour résoudre ce problème, procédez comme suit :
- Pour vérifier si l'alias .kibana existe dans le cluster, exécutez la commande suivante :
Remarque : Pour les clusters dotés d'un contrôle précis des accès, incluez l'indicateur -u avec votre nom d'utilisateur et votre mot de passe. Exemple de commande :curl -XGET https://opensearch-end-point/_cat/aliases
Si l'index .kibana n'existe pas, passez à l'étape 4.curl -XPOST -u 'master-user:master-user-password' 'domain-endpoint/_cat/indices - Pour créer une sauvegarde de l'index .kibana, exécutez la commande suivante :
Remarque : Remplacez domain-endpoint par votre point de terminaison de domaine. Pour les clusters dotés d'un contrôle précis des accès, incluez l'indicateur -u avec votre nom d'utilisateur et votre mot de passe.curl -XPOST "https://domain-endpoint/_reindex" -H 'Content-Type: application/json' -d'{ "source": { "index": ".kibana" }, "dest": { "index": ".kibana_backup" } }' - Pour supprimer l'index .kibana, exécutez la commande suivante :
Remarque : Remplacez domain-endpoint par votre point de terminaison de domaine. Pour les clusters dotés d'un contrôle précis des accès, incluez l'indicateur -u avec votre nom d'utilisateur et votre mot de passe.curl -XDELETE "https://domain-endpoint/.kibana" - Pour créer un alias .kibana et le pointer vers l'index .kibana_backup, exécutez la commande suivante :
Remarque : Remplacez domain-endpoint par votre point de terminaison de domaine. Pour les clusters dotés d'un contrôle précis des accès, incluez l'indicateur -u avec votre nom d'utilisateur et votre mot de passe.curl -XPOST "https://domain-endpoint/_aliases" -H 'Content-Type: application/json' -d'{ "actions": [ { "add": { "index": ".kibana_backup", "alias": ".kibana" } } ] }'
Informations connexes
Exporter et importer des tableaux de bord Kibana avec OpenSearch Service
- Sujets
- Analytics
- Balises
- Amazon OpenSearch Service
- Langue
- Français
Vidéos associées


Contenus pertinents
- Réponse acceptée
demandé il y a 2 ans
demandé il y a un an
demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a 10 mois