So überwachen Sie MongoDB mit Grafana und Prometheus unter Ubuntu 20.04

MongoDB ist eine weitverbreitete Datenbank, die in diversen Anwendungen zum Einsatz kommt. Um einen reibungslosen Betrieb zu gewährleisten und Leistungsprobleme frühzeitig zu identifizieren, ist eine gründliche Überwachung Ihrer MongoDB-Instanzen unerlässlich. In dieser Anleitung erfahren Sie, wie Sie MongoDB mithilfe von Grafana und Prometheus unter Ubuntu 20.04 überwachen können.

Grundvoraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass folgende Bedingungen erfüllt sind:

  • Ein Ubuntu 20.04-Server mit ausreichenden Ressourcen steht zur Verfügung.
  • MongoDB ist auf dem Server installiert.
  • Sie besitzen Root- oder Sudo-Zugriff auf den Server.

Installation von Grafana und Prometheus

Grafana dient als Visualisierungs- und Überwachungsplattform, die es ermöglicht, die von Prometheus erfassten Messdaten anzuzeigen. Prometheus ist ein Überwachungssystem, das nach dem Pull-Prinzip arbeitet und Messdaten von Zielsystemen abruft.

1. Installation von Prometheus:

sudo apt update
sudo apt install prometheus

2. Installation von Grafana:

Fügen Sie das Grafana-Repository hinzu:

sudo add-apt-repository ppa:grafana/stable
sudo apt update

Installieren Sie Grafana:

sudo apt install grafana

Konfiguration des MongoDB-Exporters

Der MongoDB-Exporter ist ein Werkzeug, das Messdaten von MongoDB-Instanzen erfasst und für Prometheus bereitstellt. Wir setzen den Exporter in einem Docker-Container ein.

1. Erstellen Sie ein Verzeichnis für den Exporter:

sudo mkdir -p /opt/mongodb-exporter

2. Laden Sie den MongoDB-Exporter herunter:

sudo curl -sSL https://github.com/mongodb/mongo-go-driver/releases/download/v1.8.4/mongo-exporter-linux-amd64.tar.gz -o /opt/mongodb-exporter/mongo-exporter.tar.gz

3. Extrahieren Sie den Exporter:

sudo tar -zxvf /opt/mongodb-exporter/mongo-exporter.tar.gz -C /opt/mongodb-exporter

4. Erstellen Sie eine Konfigurationsdatei für den Exporter:

sudo nano /opt/mongodb-exporter/config.yaml

Fügen Sie die folgende Konfiguration hinzu und ersetzen Sie <mongodb-host> durch die IP-Adresse oder den Hostnamen Ihres MongoDB-Servers:

uri: "mongodb://<mongodb-host>:27017"

5. Starten Sie den Exporter-Container:

sudo docker run -d --name mongodb-exporter -p 9216:9216 -v /opt/mongodb-exporter/config.yaml:/mongo-exporter.yaml mongo-exporter

Konfiguration von Prometheus

Nun müssen wir Prometheus so konfigurieren, dass er Messdaten vom MongoDB-Exporter erfasst.

1. Bearbeiten Sie die Prometheus-Konfigurationsdatei:

sudo nano /etc/prometheus/prometheus.yml

2. Fügen Sie den folgenden Scrape-Konfigurationsblock hinzu:

- job_name: mongodb-exporter
  scrape_interval: 10s
  static_configs:
    - targets: ['localhost:9216']

3. Starten Sie Prometheus neu:

sudo systemctl restart prometheus

Konfiguration von Grafana

Abschließend konfigurieren wir Grafana, um die von Prometheus gesammelten MongoDB-Metriken anzuzeigen.

1. Öffnen Sie Ihren Webbrowser und navigieren Sie zu https://<grafana-server>:3000.

2. Melden Sie sich bei Grafana an (Standardbenutzername und -passwort: admin).

3. Klicken Sie auf das Plus-Symbol (+) oben links und wählen Sie „Data Source“ aus.

4. Wählen Sie „Prometheus“ als Datenquelle und geben Sie den Prometheus-Servernamen und den Port (standardmäßig localhost:9090) ein.

5. Erstellen Sie ein neues Dashboard über das Plus-Symbol (+) oben links.

6. Fügen Sie dem Dashboard ein Panel hinzu und wählen Sie „Graph“ als Paneltyp aus.

7. Suchen Sie in der Metriksuche nach „mongodb_“ und wählen Sie die zu überwachenden Metriken aus.

8. Passen Sie das Panel nach Ihren Wünschen an.

Zusammenfassung

Durch die Befolgung dieser Anleitung können Sie MongoDB mit Grafana und Prometheus unter Ubuntu 20.04 effektiv überwachen. Dies ermöglicht es Ihnen, Ihre MongoDB-Instanzen im Auge zu behalten, Leistungsprobleme frühzeitig zu erkennen und die Verfügbarkeit und Leistung Ihrer MongoDB-basierten Anwendungen sicherzustellen.

FAQ

1. Welche Vorteile bietet die Überwachung von MongoDB mit Grafana und Prometheus?

  • Ermöglicht die Visualisierung und Analyse von MongoDB-Metriken
  • Hilft bei der frühzeitigen Erkennung von Leistungsproblemen
  • Verbessert die Verfügbarkeit und Zuverlässigkeit von MongoDB-basierten Anwendungen

2. Gibt es andere Möglichkeiten zur Überwachung von MongoDB?

  • Verwenden Sie das integrierte Monitoring-Tool von MongoDB (mongostat)
  • Nutzen Sie kommerzielle Überwachungstools wie New Relic oder Datadog

3. Wie oft sollte ich MongoDB-Metriken erfassen?

Die optimale Häufigkeit hängt von den spezifischen Anforderungen ab, aber im Allgemeinen wird eine Häufigkeit von 5 bis 10 Sekunden empfohlen.

4. Welche MongoDB-Metriken sind am wichtigsten zu überwachen?

  • Verbindungsanzahl
  • Abfragevolumen
  • Datengröße
  • Speicherverbrauch
  • CPU-Auslastung

5. Wie kann ich Benachrichtigungen für MongoDB-Fehler oder -Warnungen einrichten?

  • Prometheus und Grafana bieten beide Funktionen zum Einrichten von Benachrichtigungen
  • Sie können auch externe Benachrichtigungssysteme wie PagerDuty oder Slack verwenden

6. Kann ich die Grafana-Dashboards anpassen, um sie an meine spezifischen Anforderungen anzupassen?

Ja, Sie können Grafana-Dashboards nach Belieben anpassen, indem Sie Widgets hinzufügen, Metriken auswählen und das Erscheinungsbild ändern.

7. Wie kann ich die gesammelten MongoDB-Metriken langfristig speichern?

  • Verwenden Sie eine Lösung zur Langzeitspeicherung wie InfluxDB oder Elasticsearch
  • Prometheus bietet auch eine integrierte Langzeitspeicherungsfunktion (Prometheus Remote Write), die mit diesen Lösungen kompatibel ist

8. Gibt es Best Practices für die Überwachung von MongoDB?

  • Richten Sie mehrere Überwachungsstufen ein (lokale, globale)
  • Überwachen Sie sowohl quantitative (Metriken) als auch qualitative (Protokolle) Daten
  • Erstellen Sie Schwellenwerte und Warnungen, um Probleme frühzeitig zu erkennen