Mitarbeiter von EDB haben vor Kurzem eine Extension für PostgreSQL und den EDB Postgres Advanced Server unter der PostgreSQL Lizenz veröffentlicht. Diese Extension ermöglicht über eine Reihe von Funktionen für entsprechend berechtigte Rollen den Zugriff auf interessante Systemstatistik-Informationen. Im Folgenden wird die Installation für PostgreSQL und den EPAS v12 gezeigt.
Installation für PostgreSQL v12
Für PostgreSQL lässt sich die Installation unter CentOS 7 schnell per Yum Befehl abschließen, da die Extension im PGDG Repository aufgenommen wurde.
Installation für EDB Postgres Advanced Server v12
Die Installation der Extension für den EPAS dauert etwas länger, ist aber auch nicht schwer.
Zuerst wird ein extra Repository und notwendige Packages für das Kompilieren und Installieren benötigt. Beides wird per Yum Befehl installiert.
Für den EPAs wird zusätzlich die Unterstützung für das Kompilieren installiert. Dieses Package ist im EDB Yum Repository enthalten.
ls nächstes kann das aktuelle Release der Extension heruntergeladen und extrahiert werden.
Für das Kompilieren und Installieren ist es wichtig, dass die PATH Umgebungsvariable den Pfad zu den Binaries des EPAS enthält. Dies wird vor dem make Befehl eingefügt.
Einsatz der Extension
Die system_stat Extension ist jetzt installiert und kann genutzt werden. Dazu wird sie per psql-Befehl geladen.
Hinweis: Es ist aus Sicherheitsgründen wichtig darauf hinzuweisen, dass die Extension mit den System Statistiken Informationen bereitstellt, die nicht durch gewöhnliche Rollen eingesehen werden sollten. Daher sind die Funktionen nur für Superuser und die automatisch beim Laden erstellte Rolle monitor_system_stats nutzbar. Diese Rolle wird beim Entfernen der Extension nicht gelöscht.
Monitoring Rollen sollten separat per Grant den Zugriff auf die Rolle monitor_system_stats erhalten.
Die Extension stellt in der aktuellen Version 1.0 zehn Funktionen zum Host, CPU, RAM, Netzwerk, Prozessen und Last zur Verfügung. Die Dokumentation zu jeder Spalte der jeweiligen Funktion ist auf der Github Seite verfügbar.
NAME | INFORMATION |
pg_sys_os_info | Betriebssystem |
pg_sys_cpu_info | CPU |
pg_sys_cpu_usage_info | CPU Verwendung in Prozent der Zeit über alle Aktionen |
pg_sys_memory_info | RAM Informationen in Bytes |
pg_sys_io_analysis_info | I/O Analysedaten pro Block Device |
pg_sys_disk_info | Speichersystem |
pg_sys_load_avg_info | Durchschnittliche Last des Systems im Intervall 1, 5, 10 und 15 Minuten |
pg_sys_process_info | Laufende Prozesse |
pg_sys_network_info | Netzwerk |
pg_sys_cpu_memory_by_process | CPU un RAM Verbrauch pro laufendem Prozess |
Linux-Kenner werden schnell die Parallelen zu bekannten Tools entdecken und Gefallen an dieser konsolidierten Sicht finden. Natürlich bietet die Extension system_stats auch eine erstklassige Möglichkeit, dass im Einsatz befindliche Monitoring, z.B. Nagios oder aber auch Prometheus mit Grafana, mit Statistiken direkt aus PostgreSQL heraus zu versorgen.
