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.

Copy to Clipboard

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.

Copy to Clipboard

Für den EPAs wird zusätzlich die Unterstützung für das Kompilieren installiert. Dieses Package ist im EDB Yum Repository enthalten.

Copy to Clipboard

ls nächstes kann das aktuelle Release der Extension heruntergeladen und extrahiert werden.

Copy to Clipboard

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.

Copy to Clipboard

Einsatz der Extension

Die system_stat Extension ist jetzt installiert und kann genutzt werden. Dazu wird sie per psql-Befehl geladen.

Copy to Clipboard

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.

Copy to Clipboard

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.

Blog Dirk Aumüller

Dirk Aumüller

Dirk Aumueller arbeitet als Associate Partner für die Proventa AG. Sein technologischer Schwerpunkt liegt bei Datenbankarchitekturen mit PostgreSQL sowie Data Management Lösungen mit Pentaho. Zusätzlich zu seinen Datenbanktransformations-Projekteinsätzen ist er regelmäßig als PostgreSQL Trainer unterwegs und betreut Studenten bei ihren Abschlussarbeiten. Seine fachlichen Erfahrungen erstrecken sich über die Branchen Telco und Financial Services.