DBAtlas · Atlas für Datenbankbetrieb

Datenbank-Monitoring mit Prometheus + Grafana

MonitoringStufe: MittelDauer: 60–120 min

Richtet einen zentralen Monitoring-Server (Prometheus, Alertmanager, Grafana) ein und ergänzt die überwachten Server um node_exporter und die gewählten Datenbank-Exporter: PostgreSQL, MySQL, Oracle, SQL Server, MongoDB, Redis, Elasticsearch. Enthalten sind Monitoring-Benutzer mit minimalen Rechten, systemd-Services, grundlegende Alert-Regeln, Benachrichtigung per E-Mail/Webhook, Datasource-Provisioning und fertige Dashboards. Der Leitfaden setzt den Schritt „Monitoring anbinden“ am Ende der Datenbank-Installationsleitfäden fort; am Ende steht ein Monitoring, das die Metriken aller Server auf einem Bildschirm zeigt und bei Problemen benachrichtigt.

Topologie: 1 Monitoring-Server + überwachte Server

Vor dem Start

  • Monitoring-Server und überwachte Linux-Server laufen auf einem unterstützten Betriebssystem; die Uhren sind synchronisiert (chrony). Zeitabweichungen führen in Prometheus zu „out of bounds“-Fehlern und falschen Alerts.
  • Auf dem Monitoring-Server ist genug Platz für /var/lib/prometheus: mindestens einige GB für … Server × … Tage; eine eigene Platte/ein eigenes LV wird empfohlen. Mindestens 2 CPUs und 4 GB RAM sind nötig.
  • Vom Monitoring-Server (…) zu jedem Server sind die Exporter-Ports offen: 9100 (node)…, 9187 (PostgreSQL)……, 9104 (MySQL)……, 9161 (Oracle)……, 9216 (MongoDB)……, 9121 (Redis)……, 9114 (Elasticsearch)……; zu den SQL-Server-Servern ……. Von den Benutzern zum Monitoring-Server … (Grafana).
  • Die Server erreichen github.com per HTTPS (Exporter- und Prometheus-Binaries), der Monitoring-Server zusätzlich …rpm.grafana.com…apt.grafana.com…; ist das nicht möglich, lade die Dateien auf einem anderen Rechner herunter und kopiere sie.
  • Auf den PostgreSQL-Servern enthält pg_hba.conf host all all 127.0.0.1/32 scram-sha-256 (oder eine engere Regel): Der Exporter verbindet sich lokal über TCP mit Passwort.
  • Du hast auf jeder Datenbank ein Admin-Konto, das den Monitoring-Benutzer anlegen kann (PostgreSQL: postgres, MySQL: root, Oracle: SYSDBA, SQL Server: sysadmin, MongoDB: userAdmin, Redis: ein Benutzer mit ACL-Rechten, Elasticsearch: elastic).
  • Lege im Passwort-Tresor Einträge für die Passwörter der Monitoring-Benutzer an. Die Passwörter werden in den Schritten interaktiv abgefragt und nur in Dateien (0600) geschrieben, die der jeweilige Exporter-Benutzer lesen kann.

Phasen der Anleitung

  • Vorbereitung — Basiswerkzeuge installieren und Uhrzeit synchronisieren · Firewall: Exporter-Ports für den Monitoring-Server öffnen · Firewall: Grafana-Port öffnen
  • node_exporter (Betriebssystemmetriken) — node_exporter herunterladen und installieren · node_exporter-Service definieren · node_exporter starten
  • PostgreSQL: postgres_exporter — Monitoring-Rolle anlegen (pg_monitor) · Passwort der Monitoring-Rolle festlegen · postgres_exporter herunterladen und installieren · Verbindungseinstellungen und Passwortdatei schreiben · postgres_exporter-Service definieren · postgres_exporter starten
  • MySQL: mysqld_exporter — Monitoring-Benutzer und Credentials-Datei des Exporters anlegen · mysqld_exporter herunterladen und installieren · mysqld_exporter-Service definieren · mysqld_exporter starten
  • Oracle: oracledb_exporter — Monitoring-Benutzer anlegen · oracledb_exporter herunterladen und installieren · Exporter-Konfiguration schreiben · oracledb_exporter-Service definieren · oracledb_exporter starten
  • SQL Server: sql_exporter — Monitoring-Login anlegen (auf SQL Server …) · sql_exporter herunterladen und installieren · Target-Konfiguration schreiben (…) · Service-Template für sql_exporter definieren · sql_exporter starten (…)
  • MongoDB: mongodb_exporter — Monitoring-Benutzer anlegen (mongosh) · mongodb_exporter herunterladen und installieren · Credentials-Datei schreiben · mongodb_exporter-Service definieren · mongodb_exporter starten
  • Redis: redis_exporter — Monitoring-Benutzer anlegen (ACL) · redis_exporter herunterladen und installieren · Credentials-Datei schreiben · redis_exporter-Service definieren · redis_exporter starten
  • Elasticsearch: elasticsearch_exporter — Monitoring-Rolle und -Benutzer anlegen · elasticsearch_exporter herunterladen und installieren · CA-Zertifikat und Credentials-Datei schreiben · elasticsearch_exporter-Service definieren · elasticsearch_exporter starten
  • Prometheus — Prometheus herunterladen und installieren · Scrape-Targets definieren (prometheus.yml) · Alert-Regeln schreiben · Konfiguration prüfen · Prometheus-Service definieren · Prometheus starten
  • Alertmanager — Alertmanager herunterladen und installieren · Benachrichtigungskonfiguration schreiben · Konfiguration prüfen · Alertmanager-Service definieren · Alertmanager starten
  • Grafana — Grafana-Repository definieren · Grafana-Repository definieren · Grafana installieren · Sicherheitseinstellungen vornehmen · Prometheus-Datasource definieren (Provisioning) · Dashboard-Provisioning definieren …
  • Verifizierung — Prüfen, ob alle Targets UP sind · Prüfen, ob die Regeln geladen sind · Test-Alert senden · Grafana-Dashboards prüfen
  • Nach der Installation — Monitoring-System sichern · Sicherheits-Checkliste anwenden
Schritt-für-Schritt-Plan für Ihre Umgebung öffnen →