Percona hat schon vor längerer Zeit ein System bereitgestellt, mit dem man verschiedene Arten von Datenbanken überwachen und verwalten kann: PMM. Im Moment kann man mit PMM Amazon-RDS-, PostgreSQL-, MySQL-, MongoDB-, ProxySQL- und HAProxy-Instanzen überwachen.
Dabei besteht die Lösung aus einer Server- und einer Client-Komponente:
Im Grunde liefert Percona hier ein leicht konsumierbares, in weiten Teilen vorkonfiguriertes und aufeinander abgestimmtes Setup zum Sammeln von System- und Datenbankmetriken. Aus Platz- und Performancegründen kommt statt Prometheus Victoriametrics zum Einsatz. Grundsätzlich handelt es sich aber um ein identisches Konstrukt: Der PMM-Server sammelt die Daten, stellt sie mit Grafana-Dashboards grafisch dar und bietet über Clickhouse auch analytische Fähigkeiten an.
Die Clientkomponente besteht im Wesentlichen aus einem Strauß an Exportern, die je nach aktiviertem Dienst verwendet werden. Für die Erhebung der Systemdaten kommt der node_exporter zum Einsatz. Für den tieferen Einblick in das Innenleben der Datenbanken muß bei der "Registrierung" ggfs. eine eigene Tabelle angelegt oder auch DB-Erweiterungen installiert und aktiviert werden.
Bei der Installation des Servers bietet Percona mehrere Varianten an. Ich habe mich für die Docker-Variante entschieden. Wichtig dabei: Für spätere Updates muß ein separates Docker-Volume verwendet werden, auf dem Konfiguration und Daten gespeichert werden. Viele der Default-Einstellungen können per Umgebungsvariable beeinflußt werden. Ohne weitere Konfigurationen zeigt der PMM-Server nach seinem Start die Statistiken der eingebauten Postgres-Datenbank und die Werte der Server-VM an.
Um mal Daten zu sammeln habe ich flugs die drei Ubuntu-VMs meines ersten Patroni-Clusters als Clients hinzugefügt. Dazu müssen sich Client und Server wechselseitig über das Netz erreichen können. Für den Einblick in PostgreSQL wird ein Account für den PMM-Client mit Superuser-Rechten benötigt. Zusätzlich muß die pg_stat_statements Extension installiert und aktiviert werden. Danach kann die neue Instanz über die GUI (oder über die CLI vom Client aus) hinzugefügt werden. Die Daten manifestieren sich dann kurz danach ebenfalls in den Dashboards.
Percona gibt ein paar Voraussetzungen an, die der Server pro überwachter Datenbank benötigt. Diese beziehen sich aber im Wesentlichen auf dem Storagebedarf, welcher aber ebenfalls, von der Haltezeit der Daten abhängt. Der PMM-Server unterscheidet User, Organisationen und auch Teams. Die Dashboards scheinen allerdings nur in der "Main Org." zur Verfügung zu stehen. Obwohl Grafana mandantenfähig ist, kann das offenbar erstmal nicht für PMM genutzt werden.