
- Die Überwachung eines Elasticsearch-Clusters ist entscheidend, um Ausfälle frühzeitig zu erkennen.
- Konfigurieren Sie die integrierte Überwachung in der elasticsearch.yml-Datei.
- Verwenden Sie für Produktionsumgebungen ein separates Überwachungs-Cluster.
- Richten Sie Warnmeldungen mit Watcher und benutzerdefinierten Dashboards in Kibana ein.
- Testen Sie Ihre Warnmeldungen regelmäßig, um im Ernstfall zuverlässig informiert zu werden.
Warum ist die Überwachung eines Elasticsearch-Clusters so wichtig?
Ein Elasticsearch-Cluster ist das Rückgrat vieler moderner Anwendungen, von der Protokollaggregation bis zur Volltextsuche. Ohne eine robuste Überwachung laufen Sie Gefahr, Probleme wie Speicherüberläufe, langsame Abfragen oder Knotenausfälle erst zu bemerken, wenn sie bereits Ihre Dienste beeinträchtigen. Meiner Erfahrung nach ist ein unüberwachter Cluster ein erhebliches Risiko, besonders in einer französischen Wirtschaft, die 24/7-Verfügbarkeit erwartet. Effektives Monitoring ermöglicht es Ihnen, Probleme zu erkennen, bevor sie eskalieren.
Kurz gesagt :
- Überwachung in `elasticsearch.yml` mit `xpack.monitoring.collection.enabled: true` und lokalem Exporter aktivieren.
- Für Produktionsumgebungen ein separates Überwachungs-Cluster empfehlen, um Ausfälle unabhängig zu erkennen.
- Warnmeldungen über Watcher und benutzerdefinierte Kibana-Dashboards einrichten und regelmäßig testen.
- Aufbewahrungsdauer der Monitoring-Daten (Standard: 7 Tage) über ILM-Richtlinien anpassen.
Die Grundlagen des Elasticsearch-Monitorings verstehen
Bevor Sie die Konfiguration vornehmen, müssen Sie die drei Hauptebenen der Überwachung verstehen, die Elasticsearch bietet.
Die lokale Ebene: Der _cluster/health-API-Endpunkt
Dies ist der erste Schritt jeder Überwachungsstrategie. Mit dem Befehl GET /_cluster/health erhalten Sie eine Momentaufnahme des Zustands Ihres Clusters: den Status (grün, gelb oder rot) sowie die Anzahl der Knoten und aktiven Shards. Ich empfehle, sich mit diesem Endpunkt vertraut zu machen, da er die Grundlage für viele Ihrer Skripte und Warnmeldungen bildet.
Die Metrik-Ebene: Knoten- und Indizes-Statistiken
Die APIs _nodes/stats und _stats liefern detaillierte Informationen über die Ressourcennutzung (CPU, RAM, Festplatten-E/A) und die Leistung Ihrer Indizes (Such- und Indexierungszeiten). Für eine französische Infrastruktur, die oft auf mehreren Servern verteilt ist (lokal oder in der Cloud wie OVHcloud oder Scaleway), ist es entscheidend, diese Metriken zu korrelieren, um Engpässe zu identifizieren.
Die Verwaltungsebene: Die Verwendung von Kibana
Kibana ist das offizielle Visualisierungstool. Es bietet vorgefertigte Dashboards, die Sie direkt nach der Installation nutzen können. Der Vorteil von Kibana liegt in seiner Fähigkeit, Daten aus verschiedenen Quellen zu aggregieren – das vereinfacht die Überwachung erheblich, ohne dass Sie benutzerdefinierte Skripte schreiben müssen.
Die Überwachungsfunktionen in Ihrer elasticsearch.yml-Datei aktivieren
Der erste konkrete Schritt besteht darin, die integrierten Überwachungsfunktionen zu aktivieren. Seit Version 6.5 ist die Überwachung standardmäßig aktiviert, aber es ist wichtig, die Konfiguration zu überprüfen und an Ihre Bedürfnisse anzupassen.
Die Konfiguration der xpack.monitoring-Parameter
Öffnen Sie Ihre Konfigurationsdatei elasticsearch.yml auf jedem Knoten. Fügen Sie die folgenden Zeilen hinzu oder ändern Sie sie:
xpack.monitoring.collection.enabled: true
xpack.monitoring.exporters.default_local.type: local
Die erste Zeile aktiviert die Datenerfassung. Die zweite definiert einen Exporter, der die Daten im Cluster selbst speichert (in einem Index namens .monitoring-*). Für kleine und mittlere Infrastrukturen ist diese lokale Lösung ausreichend und einfach zu implementieren.
Die Datenaufbewahrungsdauer anpassen
Standardmäßig werden die Überwachungsdaten 7 Tage lang aufbewahrt. Für die Einhaltung der französischen Vorschriften zur Datenaufbewahrung (z. B. für Audit-Zwecke) möchten Sie diesen Zeitraum möglicherweise verlängern. Verwenden Sie die Index-Lifecycle-Management-Richtlinien (ILM), um die Aufbewahrungsdauer Ihrer .monitoring-*-Indizes zu konfigurieren. Sie können dies direkt über die Kibana-Oberfläche oder über die ILM-API tun.
Ein separates Überwachungs-Cluster für die Produktion einrichten
Für Produktionsumgebungen empfiehlt Elasticsearch dringend, ein separates Überwachungs-Cluster zu verwenden. Dieser Ansatz, oft als “Metrik-Cluster” bezeichnet, verhindert, dass eine Überlastung des Produktionsclusters die für die Überwachung gesammelten Daten beeinträchtigt.
Die Einrichtung des Remote-Exporters
In Ihrer elasticsearch.yml-Datei des Produktionsclusters müssen Sie einen Remote-Exporter konfigurieren, der die Daten an Ihr Überwachungs-Cluster sendet. Hier ist ein Beispiel:
xpack.monitoring.exporters.remote_cluster.type: http
xpack.monitoring.exporters.remote_cluster.host: ["https://monitoring-cluster.example.fr:9200"]
Stellen Sie sicher, dass Sie die URL Ihres Überwachungs-Clusters korrekt angeben. Vergessen Sie nicht, die Authentifizierung zu konfigurieren (z. B. mit Benutzername/Passwort oder einem API-Key), um die Übertragung zu sichern.
Die Sicherheit der Überwachung in Frankreich gewährleisten
Die Sicherheit Ihrer Überwachungsdaten ist ein kritischer Punkt, insbesondere wenn Sie sensible Daten verarbeiten. Es wird empfohlen, die TLS-Verschlüsselung für den gesamten Datenverkehr zwischen den Clustern zu aktivieren. Wenn Ihre Infrastruktur in einer französischen Cloud (OVHcloud, Scaleway) gehostet wird, nutzen Sie die angebotenen privaten Netzwerke (vRack), um den Datenverkehr von der öffentlichen Netzwerkschnittstelle zu isolieren.
Die wichtigsten Metriken für die Cluster-Überwachung konfigurieren
Nicht alle Metriken sind gleich wichtig. Um eine effektive Überwachung zu gewährleisten, müssen Sie sich auf die kritischsten Indikatoren konzentrieren.
Die Metriken auf Cluster-Ebene überwachen
Hier ist eine Liste der wichtigsten Metriken, die Sie verfolgen sollten:
- Der Cluster-Status (grün, gelb, rot), der eine sofortige Warnung auslösen muss.
- Die Anzahl der nicht zugewiesenen Shards, die auf ein Replikationsproblem hinweist.
- Die Gesamtzahl der aktiven Knoten, um einen Knotenausfall zu erkennen.
- Die JVM-Auslastung (Heap-Speicher), die 85 % nicht überschreiten sollte, um Leistungseinbußen zu vermeiden.
- Die CPU- und Festplattenauslastung der Knoten, um Sättigungsprobleme vorherzusehen.
Die Metriken auf Index-Ebene überwachen
Auf Index-Ebene sind die Such- und Indexierungslatenzen entscheidend. Eine plötzliche Erhöhung der Suchlatenz kann auf eine Anfrage mit hoher Last oder einen Hot Spot auf einem Shard hinweisen. Die Überwachung der Indexgröße ist ebenfalls wichtig, um die Speicherkapazität zu planen, insbesondere wenn Sie Protokolle über einen langen Zeitraum aufbewahren müssen (z. B. für die Einhaltung der französischen Buchhaltungsvorschriften).
Warnmeldungen und Benachrichtigungen für Ihr Team einrichten
Eine Überwachung ohne Warnmeldungen ist nutzlos. Sie müssen Benachrichtigungen einrichten, um proaktiv auf Probleme reagieren zu können.
Die Verwendung von Watcher für Warnmeldungen
Watcher ist das integrierte Warnmodul von Elasticsearch. Sie können damit Bedingungen definieren (z. B. “Wenn der Cluster-Status für 5 Minuten rot ist”) und Aktionen auslösen (E-Mail, Slack, PagerDuty). Hier ist ein Beispiel für eine einfache Warnmeldung, die eine E-Mail an Ihr Team sendet:
{ "trigger": { "schedule": { "interval": "1m" } }, "input": { "http": { "request": { "url": "http://localhost:9200/_cluster/health" } } }, "condition": { "script": { "source": "ctx.payload.status != 'green'" } }, "actions": { "email_admin": { "email": { "to": "ops@monentreprise.fr", "subject": "Cluster-Status ist nicht grün", "body": "Der Status ist {{ctx.payload.status}}" } } }
}
Die Warnschwellen anpassen
Die Schwellenwerte müssen an Ihre Umgebung angepasst werden. Ein Schwellenwert von 85 % für den JVM-Heap-Speicher ist eine gute Praxis, aber Sie können ihn je nach Ihren Ressourcen und Ihrer Toleranz gegenüber Leistungseinbußen anpassen. Es ist auch wichtig, “Rauschen” zu vermeiden, indem Sie angemessene Zeitintervalle für die Bedingungen festlegen, um zu verhindern, dass vorübergehende Spitzen unnötige Warnmeldungen auslösen.
Die Überwachung mit Kibana-Dashboards und der Elastic-Stack-Oberfläche visualisieren
Kibana ist das Frontend, das Ihnen eine benutzerfreundliche Oberfläche bietet, um den Zustand Ihres Clusters zu visualisieren.
Die vordefinierten Überwachungs-Dashboards verwenden
Sobald die Überwachung aktiviert ist, finden Sie in Kibana den Abschnitt “Stack Monitoring”. Dieses vorgefertigte Dashboard zeigt Ihnen eine globale Ansicht Ihres Clusters: Status, Knotenanzahl, Speicherverbrauch, Suchlatenzen usw. Sie müssen nichts konfigurieren – alles wird automatisch aus den gesammelten Daten generiert.
Benutzerdefinierte Dashboards für Ihre spezifischen Anforderungen erstellen
Die vordefinierten Dashboards sind ein guter Ausgangspunkt, aber Sie können benutzerdefinierte Visualisierungen erstellen, um bestimmte Aspekte hervorzuheben. Wenn Sie beispielsweise die Leistung Ihrer Suchanfragen für eine französische E-Commerce-Website überwachen möchten, können Sie ein Dashboard erstellen, das die Antwortzeiten nach Produktkategorie oder nach geografischer Herkunft der Nutzer aufschlüsselt. Dies erfordert die Verwendung von Kibana-Indexmustern, die auf Ihre .monitoring-*-Indizes verweisen.
Die Überwachungsleistung optimieren und häufige Probleme vermeiden
Die Überwachung selbst kann die Cluster-Leistung beeinträchtigen, wenn sie nicht richtig konfiguriert ist. Hier sind einige Best Practices, um dies zu vermeiden.
Die Auswirkungen der Überwachung auf die Produktion begrenzen
Die Erfassung von Metriken erzeugt eine zusätzliche Last auf Ihren Knoten. Um diese Auswirkungen zu minimieren, können Sie das Erfassungsintervall anpassen. Standardmäßig werden die Daten alle 10 Sekunden gesammelt. Wenn Sie eine sehr große Infrastruktur haben, können Sie dieses Intervall auf 30 Sekunden erhöhen, um die Last zu reduzieren. Sie können auch die Erfassung bestimmter Metriken deaktivieren, die Sie nicht benötigen (z. B. die detaillierten Indizes-Statistiken).
Die häufigsten Konfigurationsfehler vermeiden
Einer der häufigsten Fehler ist die Verwendung des lokalen Exporters in einer Produktionsumgebung, was zu einer unbegrenzten Speicherung von Überwachungsdaten führen kann. Ein weiterer Fehler ist das Fehlen einer Authentifizierung für die Überwachungs-API, wodurch Ihre Cluster-Daten exponiert werden. Stellen Sie sicher, dass Sie die Best Practices für die Sicherheit befolgen, die in der offiziellen Dokumentation von Elastic empfohlen werden.
Die fünf häufigen Fehler bei der Konfiguration des Monitorings vermeiden
Um Ihnen zu helfen, Ihr Monitoring zu perfektionieren, finden Sie hier eine Liste der häufigsten Fehler, die Sie unbedingt vermeiden sollten.
- Das separate Überwachungs-Cluster nicht einrichten: In der Produktion führt die lokale Speicherung zu einer Vermischung von Produktions- und Überwachungsdaten, was die Diagnose im Fehlerfall erschwert.
- Die Warnschwellen nicht anpassen: Die Verwendung der Standardwerte kann zu einer Flut von Warnmeldungen oder im Gegenteil zu einem völligen Fehlen von Warnmeldungen führen.
- Die Aufbewahrung der Überwachungsdaten vernachlässigen: Ohne ILM-Richtlinie können Ihre
.monitoring-*-Indizes unbegrenzt wachsen und Ihre Festplatten füllen. - Die Sicherheit der Überwachung ignorieren: Unverschlüsselte Übertragungen ohne Authentifizierung setzen Ihre Infrastruktur unnötigen Risiken aus.
- Die Überwachung nicht regelmäßig testen: Eine Warnmeldung, die nie getestet wurde, kann im Ernstfall versagen. Es ist wichtig, regelmäßig Tests durchzuführen, um sicherzustellen, dass die Benachrichtigungen korrekt funktionieren.
Häufig gestellte Fragen (FAQ) zur Konfiguration des Elasticsearch-Cluster-Monitorings
Wie überprüfe ich, ob die Überwachung in meinem Elasticsearch-Cluster aktiv ist?
Sie können den Befehl GET /_cluster/settings verwenden, um die Einstellungen anzuzeigen. Suchen Sie nach xpack.monitoring.collection.enabled und stellen Sie sicher, dass er auf true gesetzt ist. Sie können auch in Kibana im Abschnitt “Stack Monitoring” nachsehen, ob Daten angezeigt werden.
Ist es möglich, Elasticsearch-Cluster ohne Kibana zu überwachen?
Ja, es ist möglich, die APIs direkt zu verwenden (z. B. _cluster/health), aber Sie verlieren die Visualisierung und die vorgefertigten Warnmeldungen. Für eine ernsthafte Überwachung, insbesondere in einer Produktionsumgebung, wird die Verwendung von Kibana dringend empfohlen.
Was ist der Unterschied zwischen dem lokalen und dem Remote-Exporter?
Der lokale Exporter speichert die Überwachungsdaten im selben Cluster, während der Remote-Exporter sie an ein separates Cluster sendet. Der Remote-Exporter wird für Produktionsumgebungen empfohlen, um die Auswirkungen auf die Leistung zu begrenzen und eine bessere Fehlerisolierung zu gewährleisten.
Wie lange sollten die Überwachungsdaten aufbewahrt werden?
Die Aufbewahrungsdauer hängt von Ihren geschäftlichen und regulatorischen Anforderungen ab. Im Allgemeinen wird empfohlen, mindestens 7 Tage aufzubewahren, aber Sie können diesen Zeitraum auf 30 Tage oder mehr verlängern, wenn Sie historische Analysen durchführen müssen. Verwenden Sie ILM-Richtlinien, um diese Aufbewahrung zu automatisieren.
Welche Metriken sind für die Erkennung von Leistungsproblemen am kritischsten?
Die kritischsten Metriken sind der JVM-Heap-Speicher, die CPU-Auslastung, die Festplatten-E/A, die Such- und Indexierungslatenzen sowie der Cluster-Status. Diese Metriken geben Ihnen einen vollständigen Überblick über den Zustand Ihres Clusters und helfen Ihnen, Probleme zu antizipieren, bevor sie eskalieren.
Wie kann ich Warnmeldungen testen, ohne auf ein echtes Problem warten zu müssen?
Sie können die Watcher-API verwenden, um die Ausführung einer Warnmeldung manuell auszulösen. Sie können auch ein Skript schreiben, das den Cluster-Status vorübergehend ändert (z. B. durch das Stoppen eines Knotens), um zu überprüfen, ob Ihre Warnmeldung korrekt ausgelöst wird. Es ist eine gute Praxis, diese Tests regelmäßig durchzuführen.
Ein wichtiger Aspekt der Cluster-Gesundheit ist das Index Lifecycle Management, daher sollten Sie Elasticsearch ILM konfigurieren, um Speicherplatz effizient zu verwalten.




