OpenSearch
Nine's On-Demand OpenSearch nimmt dir den operativen Aufwand für Betrieb und Wartung einer Such- und Analyseinfrastruktur ab. Der Service wächst mit deinen Anforderungen und eignet sich besonders für Suchfunktionen in Applikationen, Log-Analyse, Monitoring und Observability-Workloads.
Stufen
OpenSearch ist in zwei Stufen verfügbar. Die Stufe wird über die Konfigurationsoption Cluster Type bei der Erstellung ausgewählt:
Single-Node
Ein single-Cluster besteht aus einer Instanz. Dies eignet sich für Entwicklung, Tests oder Workloads, die keine Hochverfügbarkeit erfordern.
Multi-Node
Ein multi-Cluster besteht aus drei Instanzen. Er bietet zusätzliche Ausfallsicherheit, höhere Verfügbarkeit und bessere Leistung und wird für Produktions-Workloads empfohlen.
Erste Schritte
Für den Einstieg kannst du nctl oder Cockpit, unsere Weboberfläche, verwenden:
- Cockpit
- nctl
- Erstelle einen Neuen Service direkt in Cockpit, um zu beginnen. Vergiss nicht, deine IP zu erlauben, um dich mit der Instanz zu verbinden.
- Rufe die Anmeldedaten von der Übersichtsseite ab. Notiere dir FQDN, Benutzername und Passwort.
- Verbinde dich mit der neu erstellten Instanz:
curl -XGET "https://${FQDN}/_cluster/health" -sku "${USER}:${PASSWORD}"
- Stelle sicher, dass du mit
nctlangemeldet bist:nctl auth login - Erstelle einen
opensearch-Cluster:nctl create opensearch my-test-os --allowed-cidrs=203.0.113.1/32 # ersetze 203.0.113.1 mit deiner öffentlichen IP-Adresse, um Verbindungen von deinem System zuzulassen - Verbinde dich mit dem neu erstellten Cluster:
nctl get opensearch my-test-os # notiere dir den FQDNnctl get opensearch my-test-os --print-user # notiere dir den Benutzernctl get opensearch my-test-os --print-token # notiere dir das Tokencurl -XGET "https://${FQDN}/_cluster/health" -sku "${USER}:${PASSWORD}"
Die Instanzen können über das Cockpit, mit unserem Kommandozeilen-Tool nctl oder direkt über die API verwaltet werden.
Die Abrechnung erfolgt automatisch auf Basis der genutzten Ressourcen. Das automatisierte Management von Nine gewährleistet einen reibungslosen Betrieb des Dienstes.
Updates und Wartungsfenster
Sicherheits- und Softwareupdates werden in der Regel während des NKE Wartungsfensters durchgeführt.
Daher kann es während dieses Wartungsfensters zu kurzen Serviceunterbrechungen kommen, ohne dass dies vorher angekündigt wird.
Preise
Wir empfehlen nine-search-s oder grösser für Produktionsworkloads.
Wenn Hochverfügbarkeit erforderlich ist, sollte ein multi-node Cluster verwendet werden.
| XS nine-search-xs | S nine-search-s | M nine-search-m | L nine-search-l | XL nine-search-xl | |
|---|---|---|---|---|---|
| Virtuelle CPU (VCPU) | 2 | 2 | 4 | 4 | 8 |
| RAM | 2 GB | 4 GB | 8 GB | 16 GB | 32 GB |
| Speicherplatz | 10 GB | 20 GB | 60 GB | 120 GB | 200 GB |
Monatliche Kosten (single) | |||||
Monatliche Kosten (multi) | n/a |
Zusätzlicher Speicherplatz pro 10 GB:
Jede Instanz umfasst eine feste Menge an Speicherplatz. Wird mehr Speicherplatz benötigt, erweitert sich dieser automatisch, und der zusätzliche Speicherplatz wird entsprechend verrechnet. Weitere Details findest du unter Automatische Speicherplatzerweiterung.
Konfigurationsoptionen
Die On-Demand Services bieten eine Basiskonfiguration, die für die meisten Anforderungen geeignet ist, wobei einige Optionen angepasst werden können. Die Anpassung der Konfigurationsoptionen kann zu einem Neustart der Instanz führen.
Die folgenden Konfigurationsparameter kannst du verwenden, um die Datenbankinstanz an deine Bedürfnisse anzupassen.
Name
Der Name der Datenbankinstanz kann frei gewählt werden, muss aber einzigartig sein. Nach der Erstellung kann der Name nicht mehr geändert werden.
Standort
Je nach verfügbaren Ressourcen können Instanzen an diesen Standorten erstellt werden:
| API / Cockpit Name | Name | Standort |
|---|---|---|
| nine-es34 | NTT Zürich 1 | Rümlang |
Der Standort kann nach der Erstellung der Ressource nicht mehr geändert werden.
Version
Die Standardversion ist OpenSearch 3. Version 2 ist bei der Instanz-Erstellung weiterhin auswählbar.
Erlaubte IP-Adressen
IPv4-Adressen und Adressbereiche, von denen aus Verbindungen zum Service hergestellt werden können. Der Zugriff von unseren Kubernetes-Produkten NKE und GKE sowie von Deploio ist bereits aktiviert.
Die Zugriffsbeschränkung kann jederzeit angepasst werden. Anpassungen werden unterbrechungsfrei wenige Momente nach dem Absenden des Formulars wirksam.
Cluster Type
Der Typ des zu erstellenden OpenSearch-Clusters. Siehe Stufen für einen Überblick über die verfügbaren Optionen.
Informiere dich in der offiziellen Dokumentation, um mehr über die Konfiguration von number_of_shards und number_of_replicas sowie zur Auswahl optimaler Werte für deinen Anwendungsfall zu erfahren.
Machine Type
Die Menge an Arbeitsspeicher, die OpenSearch zur Verfügung steht. Die Java-Heap-Kapazität skaliert mit dem konfigurierten Speicher.
Maschinentypen können nach der Erstellung geändert werden, wodurch die Instanzen neu gestartet werden und für einige Minuten nicht verfügbar sein können.
Bucket Users
Eine Liste von Bucket Usern, die Lesezugriff auf das OpenSearch-Snapshot-Repository erhalten.
Verbindung
Gemäss Erlaubte IP-Adressen musst du möglicherweise zusätzliche IPs erlauben, um dich mit deiner Instanz zu verbinden.
Die Instanzen sind über https auf dem Standard-Port 443 erreichbar. Alle Anfragen erfordern Basic Auth. Details zum Abrufen der Anmeldedaten findest du im Abschnitt Erste Schritte.
TLS
Das CA-Zertifikat stimmt nicht mit dem Hostnamen des Dienstes überein. Möglicherweise musst du die Hostnamen-Überprüfung explizit deaktivieren.
Die On-Demand Services akzeptieren nur Verbindungen, die durch TLS gesichert sind. Je nach verwendetem Client oder verwendeter Bibliothek kann es erforderlich sein, TLS explizit zu aktivieren.
Das TLS-Zertifikat ist selbstsigniert. Zusätzlich zur Aktivierung der TLS-Transportverschlüsselung musst du möglicherweise die für die Validierung verwendete Zertifizierungsstelle bereitstellen.
Du kannst die CA entweder via Cockpit oder nctl abrufen:
- Cockpit
- nctl
- Öffne die On-Demand Services Übersicht und wähle den entsprechenden Service aus.
- Die CA ist unter dem
Zertifikat-Tab der Ressource verfügbar.
Stelle sicher, dass du mit
nctlangemeldet bist:nctl auth login- Rufe das Zertifikat ab:nctl get opensearch my-test-opensearch --print-ca-cert
Deploio-Umgebungsvariablen
Wenn dieser Service von einer Deploio-Applikation referenziert wird,
injiziert Nine Verbindungsdaten als Umgebungsvariablen. <NAME> ist der Name der Ziel-Serviceressource,
in Grossbuchstaben mit nicht-alphanumerischen Zeichen ersetzt durch _.
| Variable | Beschreibung |
|---|---|
NINE_OS_<NAME>_FQDN | Hostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname. |
NINE_OS_<NAME>_USER | Benutzername. |
NINE_OS_<NAME>_PASSWORD | Passwort. |
NINE_OS_<NAME>_CA_CERT | CA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist. |
Health-Checks
Nine stellt sicher, dass alle für den Betrieb von OpenSearch erforderlichen Infrastrukturkomponenten rund um die Uhr verfügbar sind.
Die Benutzer sind für die Untersuchung und Optimierung der OpenSearch-Index-Stati verantwortlich, da diese hauptsächlich durch die Zugriffsmuster der eingesetzten Clients bestimmt werden.
Der Status des Clusters und der Indices kann über die Endpunkte /_cluster/health und /_cluster/health/<index> geprüft werden.
redHealth-Status: Das Cluster verfügt über einige nicht zugewiesene primäre Shards, was bedeutet, dass einige Vorgänge wie Suchen und Indizieren fehlschlagen können.- red Fehlerbehebung (Opster)
yellowHealth-Status: Das Cluster hat keine nicht zugewiesenen primären Shards, aber einige nicht zugewiesene Replica-Shards. Dies erhöht das Risiko eines Datenverlusts und kann die Leistung beeinträchtigen.- yellow Fehlerbehebung (Opster)
greenHealth-Status: Alle primären Shards und ihre Replicas wurden erfolgreich den verfügbaren Nodes zugewiesen, wodurch vollständige Redundanz und Datenverfügbarkeit für Suchanfragen und Indizierungen gewährleistet sind.
Die offizielle OpenSearch-Dokumentation vermittelt tiefere Einblicke in Health-Checks.
Eine häufige Ursache für einen gelben oder roten Status in OpenSearch-Clustern ist, dass Nodes keine konsistente Sicht auf den Cluster haben. Eine hohe Auslastung durch intensive clientgesteuerte Indizierungs- oder Suchabfragen kann zu plötzlichem Speicherdruck führen und die Shard-Synchronisation sowie die Zuweisung beeinträchtigen. Zudem können Änderungen über die OpenSearch-Management-API Einstellungen für Shard-Replicas, Routing oder Index-Templates beeinflussen und so eine korrekte Shard-Zuweisung verhindern.
Warum wird mein Cluster mit verbleibendem Status yellow initialisiert?
Single-Node Cluster verbleiben immer mit einem gelben Status, da es keine Nodes gibt, denen OpenSearch eine Replica zuweisen kann.
Snapshots
Ein Snapshot-Repository namens default wird automatisch konfiguriert und registriert. Dies ermöglicht dir die Verwendung der OpenSearch Snapshots API zur Verwaltung von Snapshots. Die Nutzung wird nach den Object Storage Tarifen berechnet.
Ersetze ${FQDN}, ${USER}, ${PASSWORD} und ${SNAPSHOT_NAME} in den folgenden Befehlen durch die entsprechenden Werte wie im Abschnitt Erste Schritte beschrieben.
Erstellen
Um einen Snapshot im default-Repository zu erstellen, verwende den folgenden Befehl:
curl -XPUT "https://${FQDN}/_snapshot/default/${SNAPSHOT_NAME}" -sku "${USER}:${PASSWORD}" -H 'Content-Type: application/json' -d '{
"indices": "*",
"ignore_unavailable": true,
"include_global_state": false,
"partial": false
}'
Weitere Details zu Snapshot-Optionen findest du in der OpenSearch Create Snapshot Dokumentation.
Wiederherstellen
Um einen Snapshot aus dem default-Repository wiederherzustellen, verwende den folgenden Befehl.
Wenn bereits ein Index mit demselben Namen im Cluster existiert, musst du diesen vor der Wiederherstellung schliessen, löschen oder umbenennen. Du kannst die Parameter rename_pattern und rename_replacement im Request-Body verwenden, um Indizes während der Wiederherstellung umzubenennen.
curl -XPOST "https://${FQDN}/_snapshot/default/${SNAPSHOT_NAME}/_restore" -sku "${USER}:${PASSWORD}" -H 'Content-Type: application/json' -d '{
"indices": "*",
"ignore_unavailable": true,
"include_global_state": false
}'
Weitere Details zu Wiederherstellungsoptionen findest du in der OpenSearch Restore Snapshot Dokumentation.
Auf Snapshots Bucket zugreifen
Erstelle einen Bucket User und verweise in Bucket Users darauf, um Lesezugriff auf den entsprechenden Bucket zu erhalten:
- Cockpit
- nctl
- Erstelle einen neuen Bucket User direkt in Cockpit. Stelle sicher, dass der Standort derselbe ist wie bei der OpenSearch-Instanz.
- Rufe die Anmeldedaten von der Übersichtsseite ab. Notiere dir den Access und Secret Key.
- Füge die Benutzer hinzu, indem du zu einer bestehenden OpenSearch-Instanz navigierst und diese bearbeitest.
- Notiere dir den Snapshots-Bucket von der Übersichtsseite.
- Verwende einen Object Storage-Client, um dich mit dem Bucket zu verbinden.
- Stelle sicher, dass du mit
nctlangemeldet bist:nctl auth login - Erstelle einen neuen Bucket User:
nctl create bucketuser my-test-os-reader
- Gewähre dem neu erstellten Bucket User Zugriff auf den Snapshot-Bucket:
nctl update opensearch my-test-os --bucket-users my-test-os-reader
- Rufe die URL für den Snapshot-Bucket ab:
nctl get opensearch my-test-os --print-snapshot-bucket
- Verwende einen Object Storage-Client, um dich mit dem Bucket zu verbinden.
Automatische Speicherplatzerweiterung
Gespeicherte Daten bleiben über Instanzneustarts hinweg erhalten. Um eine stabile Umgebung bereitzustellen, wird der verfügbare Speicherplatz in Intervallen von 5 Minuten überprüft. Stellt unsere Überwachung fest, dass den Schwellenwert unterschreitet, wird das Speicherkontingent automatisch erweitert. Der zusätzliche Speicherplatz wird automatisch verrechnet.
Der Speicherplatz kann nicht verringert werden, selbst wenn sich die Indexgrösse reduziert hat. Die einzige Möglichkeit, die Speichernutzung zu reduzieren, ist das Erstellen einer neuen OpenSearch-Instanz.