Zum Hauptinhalt springen
Datenbanken & Anwendungen

PostgreSQL-Abfrage

Führe eine eigene SELECT-Abfrage auf einem PostgreSQL-Server aus und lass dich anhand von Zeilenanzahl oder Ausführungszeit warnen.

Der Check PostgreSQL-Abfrage führt eine eigene SQL-Abfrage auf einem PostgreSQL-Server aus und bewertet entweder die Anzahl der zurückgegebenen Zeilen oder die Ausführungszeit. So kannst du zum Beispiel fehlgeschlagene Jobs, hängende Aufträge oder langsame Abfragen überwachen. Der Check läuft auf dem Agent-Gerät, dem du ihn zuweist, und verbindet sich von dort über TCP mit dem eingetragenen Host. Er läuft unter Windows, Linux und macOS (jeweils x64 und Arm64), standardmäßig alle 5 Minuten. Der Datenbankserver selbst muss kein Agent-Gerät sein; es genügt ein Agent-Gerät, das ihn über das Netzwerk erreicht.

Voraussetzungen

  • Eine Login-Rolle und eine host-Zeile in pg_hba.conf, die diese Rolle von der Adresse des Agent-Geräts aus zulässt.
  • CONNECT auf die Datenbank, USAGE auf das Schema und SELECT auf die Tabellen, die deine Abfrage liest.

Wie du die Monitoring-Rolle, ihre Leserechte und den Eintrag in pg_hba.conf anlegst, erfährst du unter Das Monitoring-Konto für Datenbank-Checks einrichten.

Schritte

  1. Gehe zu Geräte und öffne das Gerät.
  2. Klicke auf den Tab Checks → Check hinzufügen → PostgreSQL-Abfrage.

Einstellungen

FeldTypErforderlichStandardBeschreibung
HostTextJa—Hostname oder IP-Adresse des PostgreSQL-Servers, aus Sicht des Agent-Geräts
PortGanzzahlNein5432TCP-Port des Servers. Werte außerhalb von 1–65535 ersetzt der Check durch 5432
DatenbankTextNeinpostgresDatenbank, in der die Abfrage läuft. Ein leeres Feld wird als postgres behandelt
BenutzernameTextJa—Rolle, mit der sich der Check anmeldet
PasswortTextNein—Passwort der Rolle
SSL-ModusAuswahlNeinPreferPrefer verschlüsselt, wenn der Server es anbietet; Require verlangt eine verschlüsselte Verbindung; Disable verbindet unverschlüsselt
Abfrage (schreibgeschütztes SELECT)TextJa—Die auszuführende Anweisung. Sie läuft in einer READ ONLY-Transaktion, die danach zurückgerollt wird
Warnen beiAuswahlNeinZeilenanzahlZeilenanzahl bewertet die Anzahl der zurückgegebenen Zeilen, Ausführungszeit (ms) die Dauer der Abfrage in Millisekunden
Warnen, wenn unter SchwellenwertJa/NeinNeinNeinKehrt den Vergleich um: Alarm, wenn der Wert die Schwellenwerte erreicht oder unterschreitet
Warnungs-SchwellenwertZahlNein1Wert, ab dem eine Warnung gemeldet wird
Fehler-SchwellenwertZahlNein1Wert, ab dem ein kritisches Ergebnis gemeldet wird

Der Check zählt Zeilen, keine Werte. SELECT count(*) FROM jobs WHERE failed liefert immer genau eine Zeile und wird deshalb immer als 1 bewertet, egal wie viele Jobs fehlgeschlagen sind. Schreibe die Abfrage so, dass sie eine Zeile pro Problem zurückgibt, zum Beispiel SELECT id FROM jobs WHERE failed.

Ergebnisse

Der Check vergleicht den gewählten Wert (Zeilenanzahl oder Ausführungszeit) mit beiden Schwellenwerten. Die Schwellenwerte greifen auch bei Gleichheit.

SituationErgebnis
Wert mindestens Fehler-Schwellenwert (mit Warnen, wenn unter Schwellenwert: höchstens)Kritisch
Wert mindestens Warnungs-Schwellenwert (mit Warnen, wenn unter Schwellenwert: höchstens)Warnung
SonstOK
Anmeldung abgewiesen, Server nicht erreichbar, Abfragefehler oder ZeitüberschreitungKritisch
Kein Host oder keine Abfrage eingetragenWarnung
Unerwarteter Fehler im CheckFehler

Mit den Standardwerten (beide Schwellenwerte 1, Modus Zeilenanzahl) ist der Check also kritisch, sobald die Abfrage mindestens eine Zeile zurückgibt, und sonst OK. Liegen die beiden Schwellenwerte in der falschen Reihenfolge, vertauscht der Check sie vor der Auswertung. Verbindungsaufbau und Abfrage haben ein festes Timeout von 15 Sekunden.

Erfasste Metriken

  • Anzahl der zurückgegebenen Zeilen
  • Ausführungszeit der Abfrage in Millisekunden (ohne Verbindungsaufbau)

Hinweise

  • Die READ ONLY-Transaktion ist ein Sicherheitsnetz, kein Ersatz für eine Rolle mit reinen Leserechten. Gib der Monitoring-Rolle nur SELECT.
  • Der Host ist Teil der Check-Konfiguration. Weist du den Check über ein Konfigurationspaket vielen Geräten zu, führt jedes dieser Geräte dieselbe Abfrage auf demselben Server aus. Weise ihn deshalb einem einzelnen Gerät zu.