OpenSearch auf STACKIT – Managed Such- und Analyse-Cluster
Volltextsuche, Log-Analyse oder Echtzeit-Dashboards – wenn du große Datenmengen durchsuchbar und analysierbar machen willst, ist OpenSearch das richtige Werkzeug. STACKIT bietet einen managed OpenSearch-Service, der dir den Betrieb des Clusters abnimmt.
Was ist OpenSearch?
OpenSearch ist eine Open-Source-Such- und Analyse-Engine auf Basis von Apache Lucene:
- Volltextsuche – Durchsuche Millionen von Dokumenten in Millisekunden mit Relevanz-Scoring
- Log-Analyse – Zentralisiere und analysiere Logs aus allen deinen Services
- Dashboards – Erstelle Visualisierungen und Echtzeit-Dashboards mit OpenSearch Dashboards
- Skalierbar – Horizontale Skalierung über mehrere Knoten für große Datenmengen
- RESTful API – Alle Operationen über eine einfache HTTP/JSON-Schnittstelle
:::info Managed OpenSearch auf STACKIT kümmert sich um Cluster-Management, Backups und Updates – du fokussierst dich auf deine Daten. :::
Tutorial: OpenSearch auf STACKIT nutzen
1. OpenSearch-Instanz erstellen
stackit opensearch instance create \
--name my-search \
--project-id your-project-id \
--plan-name cluster-small
2. Credentials anlegen
stackit opensearch credentials create \
--instance-name my-search \
--project-id your-project-id
3. Index mit Mapping erstellen
curl -X PUT "https://your-opensearch-host:9200/produkte" \
-u "your-user:your-password" \
-H "Content-Type: application/json" \
-d '{
"mappings": {
"properties": {
"name": { "type": "text", "analyzer": "german" },
"beschreibung": { "type": "text", "analyzer": "german" },
"preis": { "type": "float" },
"kategorie": { "type": "keyword" },
"erstellt_am": { "type": "date" }
}
}
}'
4. Dokumente indexieren
# Einzelnes Dokument
curl -X POST "https://your-opensearch-host:9200/produkte/_doc" \
-u "your-user:your-password" \
-H "Content-Type: application/json" \
-d '{
"name": "STACKIT Cloud Server",
"beschreibung": "Hochperformanter virtueller Server in der deutschen Cloud",
"preis": 29.99,
"kategorie": "compute",
"erstellt_am": "2026-03-26"
}'
# Bulk-Import
curl -X POST "https://your-opensearch-host:9200/_bulk" \
-u "your-user:your-password" \
-H "Content-Type: application/x-ndjson" \
--data-binary @produkte.ndjson
5. Suche ausführen
# Volltextsuche mit Boosting
curl -X GET "https://your-opensearch-host:9200/produkte/_search" \
-u "your-user:your-password" \
-H "Content-Type: application/json" \
-d '{
"query": {
"multi_match": {
"query": "Cloud Server",
"fields": ["name^2", "beschreibung"]
}
}
}'
# Filtern und Aggregieren
curl -X GET "https://your-opensearch-host:9200/produkte/_search" \
-u "your-user:your-password" \
-H "Content-Type: application/json" \
-d '{
"query": {
"bool": {
"must": { "match": { "beschreibung": "Cloud" } },
"filter": { "range": { "preis": { "lte": 50 } } }
}
},
"aggs": {
"nach_kategorie": {
"terms": { "field": "kategorie" }
}
}
}'
6. Logs mit Filebeat einliefern
# filebeat.yml
output.opensearch:
hosts: ["https://your-opensearch-host:9200"]
username: "your-user"
password: "your-password"
index: "logs-%{+yyyy.MM.dd}"
ssl.verification_mode: full
:::tip
Nutze den german-Analyzer für deutschsprachige Inhalte – er berücksichtigt Stemming und Stoppwörter.
:::
Nächste Schritte
- Verbinde OpenSearch Dashboards für visuelle Datenexploration und Monitoring
- Richte Index-Lifecycle-Policies ein, um alte Indizes automatisch zu löschen
- Implementiere Synonyme und benutzerdefinierte Analyzer für bessere Suchergebnisse
- Nutze Alerting-Plugins, um bei bestimmten Log-Mustern benachrichtigt zu werden