Datenbank-Monitoring mit Prometheus + Grafana
MonitoringStufe: MittelDauer: 60–120 minRichtet 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