Wie erstelle ich ein Indexmuster in meinem OpenSearch Service-Cluster?
Ich möchte ein Indexmuster in meinem Amazon OpenSearch Service-Cluster erstellen.
Lösung
Voraussetzungen:
- Der Benutzer von AWS Identity and Access Management (IAM) muss über PUT- und POST-Berechtigungen verfügen, um ein Indexmuster zu erstellen. Beispiel für eine Zugriffsrichtlinie:
Hinweis: Ersetze region durch deine AWS-Region, account-id durch deine AWS-Konto-ID und domain-name durch deinen Domain-Namen.{ "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/*" } ] } - Deine Cluster-Version muss Indexmuster zulassen.
Indexmuster erstellen
OpenSearch Dashboards verwenden
Du kannst OpenSearch Dashboards verwenden, um ein Indexmuster für OpenSearch Service- oder Elasticsearch-Cluster mit oder ohne differenzierte Zugriffssteuerung zu erstellen. Anweisungen findest du unter Indexmuster erstellen auf der OpenSearch-Website.
Verwenden von curl-Befehlen
Um ein Indexmuster für Cluster ohne detaillierte Zugriffssteuerung zu erstellen, führe den folgenden Befehl auf der Grundlage des Cluster-Typs aus.
Elasticsearch-Cluster:
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*" } }'
Hinweis: Ersetze sample-index durch deinen Indexnamen oder dein Indexmuster.
OpenSearch Service-Cluster:
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*" } }'
Hinweis: Ersetze sample-index durch deinen Indexnamen oder dein Indexmuster.
Führe für Cluster mit detaillierter Zugriffssteuerung die folgenden Schritte aus:
- Um Autorisierungs-Cookies in der Datei auth.txt zu generieren, führe je nach Cluster-Typ den folgenden Befehl aus.
Elasticsearch-Cluster:
Hinweis: Ersetze usernameexample durch deinen Benutzernamen und passwordexample durch dein Passwort.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
OpenSearch Service-Cluster:
Hinweis: Ersetze usernameexample durch deinen Benutzernamen und passwordexample durch dein Passwort.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 - Um die Anfrage zur Erstellung des Indexmusters zu senden, führe den folgenden Befehl basierend auf deinem Cluster-Typ aus:
Elasticsearch-Cluster:
Hinweis: Ersetze sample-index durch deinen Indexnamen oder dein Indexmuster.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
OpenSearch Service-Cluster:
Hinweis: Ersetze sample-index durch deinen Indexnamen oder dein Indexmuster.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
Python verwenden
Voraussetzungen:
- Ordne die Rolle, die den Python-Code ausführt, der Backend-Rolle für differenzierte Zugriffssteuerungs-Cluster zu.
- Führe die folgenden Befehle aus, um die erforderlichen Abhängigkeiten zu installieren:
pip install boto3 pip install opensearch-py pip install requests pip install requests-aws4auth
Führe den folgenden Python-Befehl aus, um das Indexmuster für OpenSearch Service-Cluster zu erstellen:
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)
Hinweis: Ersetze domain-endpoint durch deinen Domain-Endpunkt und aos-region durch deine Region. Ersetze bei Elasticsearch-Clustern _dashboards/api/saved_objects/index-pattern durch _plugin/kibana/api/saved_objects/index-pattern.
Probleme bei der Erstellung von Indexmustern beheben
Du verwendest eine differenzierte Zugriffssteuerung mit SAML 2.0- oder Amazon Cognito-Authentifizierung
Wenn die Domain für den Cluster SAML 2.0 oder Amazon Cognito zur Authentifizierung verwendet, erstelle einen internen Benutzer zur Verwaltung des Indexmusters.
Hinweis: Für Cluster, bei denen du die differenzierte Zugriffssteuerung aktiviert hast, muss der Benutzer über die Berechtigungen ESHttpPut und ESHttpPost verfügen, um ein Indexmuster zu erstellen.
Du kannst das Indexmuster nicht im globalen Mandanten erstellen
Standardmäßig erstellt OpenSearch Dashboards Indexmuster unter dem globalen Mandanten. Um ein Indexmuster außerhalb des globalen Mandanten zu erstellen, führe den folgenden Befehl aus:
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
Hinweis: Ersetze sample-index durch deinen Indexnamen oder dein Indexmuster.
Du hast den Alias.kibana nicht in den Cluster aufgenommen
Gehe wie folgt vor, um dieses Problem zu beheben:
- Führe den folgenden Befehl aus, um zu überprüfen, ob der Alias .kibana im Cluster existiert:
Hinweis: Füge bei Clustern mit differenzierter Zugriffssteuerung das Flag -u in deinen Benutzernamen und dein Passwort ein. Beispielbefehl:curl -XGET https://opensearch-end-point/_cat/aliases
Wenn der .kibana-Index nicht existiert, fahre mit Schritt 4 fort.curl -XPOST -u 'master-user:master-user-password' 'domain-endpoint/_cat/indices - Führe den folgenden Befehl aus, um eine Sicherungskopie des .kibana-Index zu erstellen:
Hinweis: Ersetze domain-endpoint durch deinen Domain-Endpunkt. Füge bei Clustern mit differenzierter Zugriffssteuerung das Flag -u in deinen Benutzernamen und dein Passwort ein.curl -XPOST "https://domain-endpoint/_reindex" -H 'Content-Type: application/json' -d'{ "source": { "index": ".kibana" }, "dest": { "index": ".kibana_backup" } }' - Führe den folgenden Befehl aus, um den .kibana-Index zu löschen:
Hinweis: Ersetze domain-endpoint durch deinen Domain-Endpunkt. Füge bei Clustern mit differenzierter Zugriffssteuerung das Flag -u in deinen Benutzernamen und dein Passwort ein.curl -XDELETE "https://domain-endpoint/.kibana" - Führe den folgenden Befehl aus, um einen .kibana-Alias zu erstellen und ihn auf den .kibana_backup-Index zu verweisen:
Hinweis: Ersetze domain-endpoint durch deinen Domain-Endpunkt. Füge bei Clustern mit differenzierter Zugriffssteuerung das Flag -u in deinen Benutzernamen und dein Passwort ein.curl -XPOST "https://domain-endpoint/_aliases" -H 'Content-Type: application/json' -d'{ "actions": [ { "add": { "index": ".kibana_backup", "alias": ".kibana" } } ] }'
Ähnliche Informationen
Kibana-Dashboards mit OpenSearch Service exportieren und importieren
- Themen
- Analytics
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Monaten
AWS OFFICIALAktualisiert vor 3 Monaten