PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

pgDash-Alternativen – PostgreSQL-Datenbanküberwachung mit ClusterControl

Datenbanküberwachung und Warnungen sind ein besonders wichtiger Teil des Datenbankbetriebs, da wir den aktuellen Status der Datenbank verstehen müssen. Wenn Sie keine gute Datenbanküberwachung haben, werden Sie Probleme in der Datenbank nicht schnell finden. Dies kann dann zu Ausfallzeiten führen.

Ein für die Überwachung verfügbares Tool ist pgDash, eine SaaS-Anwendung zur Überwachung und Benachrichtigung für die PostgreSQL-Datenbank.

pgDash-Installationsverfahren

Die Registrierung für pgDash kann über die Website erfolgen oder auch heruntergeladen werden (selbst gehostet), wie von RapidLoop bereitgestellt.

Der Installationsprozess von pgDash ist einfach, wir müssen nur das Paket herunterladen, das von pgDash benötigt wird, um auf der Host-/Datenbankserverseite konfiguriert zu werden.

Sie können den Prozess wie folgt ausführen:

[[email protected] ~]$ curl -O -L https://github.com/rapidloop/pgmetrics/releases/download/v1.9.0/pgmetrics_1.9.0_linux_amd64.tar.gz

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100   647  100   647    0     0    965      0 --:--:-- --:--:-- --:--:--   964

100 3576k  100 3576k    0     0   189k      0  0:00:18  0:00:18 --:--:--  345k

[[email protected] ~]$ tar xvf pgmetrics_1.9.0_linux_amd64.tar.gz

pgmetrics_1.9.0_linux_amd64/LICENSE

pgmetrics_1.9.0_linux_amd64/README.md

pgmetrics_1.9.0_linux_amd64/pgmetrics

[[email protected] ~]$ curl -O -L https://github.com/rapidloop/pgdash/releases/download/v1.5.1/pgdash_1.5.1_linux_amd64.tar.gz

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100   644  100   644    0     0   1370      0 --:--:-- --:--:-- --:--:--  1367

100 2314k  100 2314k    0     0   361k      0  0:00:06  0:00:06 --:--:--  560k

[[email protected] ~]$ tar xvf pgdash_1.5.1_linux_amd64.tar.gz

pgdash_1.5.1_linux_amd64/LICENSE

pgdash_1.5.1_linux_amd64/README.md

pgdash_1.5.1_linux_amd64/pgdash

[[email protected] ~]$ ./pgmetrics_1.9.0_linux_amd64/pgmetrics --no-password -f json ccdb | ./pgdash_1.5.1_linux_amd64/pgdash -a NrxaHk3JH2ztLI06qQlA4o report myserver1

Neben pgDash müssen Sie zur Überwachung ein weiteres Paket, pgmetrics, installieren. pgmetrics ist ein Open-Source-Dienstprogramm, dessen Aufgabe es ist, Informationen und Statistiken in der von pgDash benötigten Datenbank zu sammeln, während die Aufgabe von pgdash darin besteht, diese Informationen an das Dashboard zu senden.

Wenn Sie der Überwachungsplattform weitere Datenbanken hinzufügen möchten, benötigen Sie um den obigen Vorgang für jede Datenbank zu wiederholen.

Obwohl die Installation von pgDash einfach ist, gibt es sich wiederholende Prozesse, die zu einem Problem werden können, wenn zusätzliche Datenbanken überwacht werden müssen. Wahrscheinlich müssen Sie dafür ein Automatisierungsskript erstellen.

pgDash-Metriken

Es gibt 3 Hauptfunktionen unter pgDash Dashboard, diese sind: 

  • Dashboard :besteht aus Untermenüs wie:Übersicht, Datenbank, Abfragen, Backend, Sperren, Tablespace, Replikation, WAL-Dateien, BG-Writer, Vakuum, Rollen, Konfiguration.
  • Werkzeuge :besteht aus Untermenüs wie Indexverwaltung, Tabellenbereichsverwaltung, Diagnose und Top-K.
  • Benachrichtigungen :bestehen aus Untermenüs wie Warnungen und Änderungswarnungen.

PostgreSQL-Überwachung durch ClusterControl 

Die von ClusterControl durchgeführte Überwachung verwendet die ssh-Methode und eine direkte Verbindung vom Controller-Knoten zum Zieldatenbankknoten, um Informationen zu sammeln, die für die Anzeige auf dem Dashboard benötigt werden.

ClusterControl hat auch eine Funktion zur Agentenbasierten Überwachung, die einfach aktiviert werden kann. Sie können es unten sehen...

ClusterControl führt dann den Prometheus-Installationsprozess, die Node-Exporter und PostgreSQL aus Exporteure, in der gezielten Datenbank, die darauf abzielt, Informationen zu sammeln und zu sammeln, die vom Dashboard benötigt werden, um Metriken anzuzeigen.

Wenn Agent Based Monitoring aktiv ist, wird jede neue Zieldatenbank automatisch hinzugefügt und von Agent Based Monitoring überwacht.

ClusterControl-Dashboards

Hier können Sie Informationen in den Bildschirmen PostgreSQL-Clusterübersicht und Systeminformationen sehen. In dieser Funktion können Sie detaillierte Informationen wie db-Version, Transaktions-ID, letzter Checkpoint und Datum und Uhrzeit sehen, wann der Server aktiv ist. Diese Informationen sind unten dargestellt:

Auf der Systeminformationsseite können wir Informationen wie durchschnittliche Auslastung, Speichernutzung, Swap-Nutzung, siehe Bild unten:

  • Datenbank :Sie können Informationen wie DB-Name, DB-Größe, Anzahl der Tabellen, Index und auch Tablespace abrufen.
  • Abfragen :Sie können Anrufe, Disk Write, Disk Read, Buffer Hit von Abfragen überwachen. Außerdem können Sie jede Suchanfrage durchsuchen, die innerhalb eines bestimmten Zeitraums ausgeführt wird.
  • Backend :Sie können den aktuellen Status des Datenbank-Backends überwachen. Innerhalb dieser Informationen werden wichtige Details bereitgestellt, z. B. Backends, die auf die Sperren warten, andere wartende Backends, Transaktion zu lange geöffnet, Backend im Leerlauf in Transaktion. Sie können auch alle Backends sehen, die in der Datenbank ausgeführt werden.
  • Sperren :Sie können die Gesamtzahl der Sperren, nicht gewährten Sperren und blockierten Abfragen überprüfen.
  • Tablespace :Bietet Informationen zum Tablespace, dh. Tablespace-Größe, Nutzung von Disk und Inodes.
  • Replikationen :Sie können Ihren Replikationsstatus in der PostgreSQL-Datenbank überwachen, beginnend mit Replikationsslot, eingehender Replikation, ausgehender Replikation, Replikationsveröffentlichungen und Replikationsabonnements.
  • Wal-Dateien :Bietet Informationen zu WAL (Write Ahead Log) und auch Statistiken, z. B.:Anzahl der WAL-Dateien, WAL-Generierungsrate, stündlich generierte WAL-Dateien.
  • BG-Autoren :Stellt Informationen in Bezug auf die Checkpoint-Datenbank, den geschriebenen Puffer und Parameter in Bezug auf den Background Writer bereit.
  • Vakuumfortschritt :Enthält Informationen zum Vakuum, das in der Datenbank läuft, sowie Vakuumparameter.
  • Rollen :enthält Informationen zu den Rollen, die in der Datenbank vorhanden sind, einschließlich Berechtigungen.
  • Konfiguration :enthält Parameter in der Datenbank PostgreSQL.

Innerhalb von Tools gibt es Untermenüs wie Indexverwaltung, die Informationen bereitstellen, z. Unused Index, Bloat Index, dan Index with Low Cache Hit Ratio. Tablespace Management bietet Informationen zu Tablespace und anderen Objekten, die unter verfügbar sind.

Diagnose, um die potenziellen Probleme zu verstehen, die durch die Top 10 der am meisten aufgeblähten Tabellen, die Top 10 der am meisten aufgeblähten Indizes, die Liste der inaktiven Replikationsslots, die Top 10 der am längsten laufenden Transaktionen usw. auftreten können.

ClusterControl hat mehrere Metriken in separaten Menüs, das sind Übersicht, Knoten, Dashboard, Abfrageüberwachung und Leistung, siehe Bild unten:

Wenn die agentenbasierte Überwachung aktiviert ist, daher alle Informationen zu Statistiken und andere datenbankbezogene Informationen werden in einer Zeitreihendatenbank (Prometheus) gespeichert. Sie können diese Informationen in ClusterControl wie unten dargestellt sehen:

In der Abfrageüberwachung finden Sie Top Queries, Running Queries, Query Menüs „Ausreißer“ oder „Abfragestatistiken“. Sie liefern Informationen zu laufenden Abfragen, Top-Abfragen und Statistiken der Datenbank. Sie können auch langsame Abfragen und nicht indizierende Abfragen konfigurieren.

Bei Leistung gibt es Untermenüs wie DB-Wachstum, die Informationen über Datenbank- und Tabellengrößenstatistiken anzeigen können. Der Schema-Analysator stellt Informationen zu redundantem Index und Tabelle ohne Primärschlüssel bereit.

PostgreSQL-Warnung

Es gibt zwei Teile der Alarmierung...

  • Benachrichtigungsregeln :Alarmregeln eine große Rolle spielen, können Sie Grenzwerte als Parameter definieren, die einen Alarm beim DBA auslösen können.
  • Integration von Drittanbietern :ist ein Integrationskanal zur Incident-Management-Plattform für Kommunikation und Zusammenarbeit wie:PagerDuty, OpsGenie, Slack oder per E-Mail.

PgDash hat viele Optionen von Datenbankparametern, die Sie in Bezug auf die Alarmregel einstellen können, unterteilt in mehrere Ebenen, beginnend mit Server, Datenbank, Tabelle, Index, Tabellenbereich und Abfrage. Sie können diese Informationen wie unten abgebildet in pgDash sehen...

Was den Drittanbieter-Integrationskanal betrifft, unterstützt pgDash mehrere Kanäle, z B. Slack, Pagerduty, VictorOps, Xmatters, E-Mail oder eigene Webhooks erstellen, damit sie von anderen Diensten genutzt werden können.

Das Folgende ist das Aussehen der Drittanbieter-Integration von pgDash:

Im Gegensatz zu pgDash hat ClusterControl eine breitere und allgemeinere Option für Ereigniswarnungen , beginnend mit Warnungen, die sich auf den Host, das Netzwerk, den Cluster und die Datenbank selbst beziehen. Im Folgenden finden Sie Beispiele für auswählbare Ereignisoptionen:

ClusterControl kann mehrere Datenbank-Cluster in einem Ereignisalarm auswählen. Die Drittanbieter-Integration von ClusterControl unterstützt mehrere Incident-Management- und Kommunikations-/Collaboration-Tools wie PagerDuty, VictorOps, Telegram, OpsGenie, Slack, ServiceNow oder Sie können Ihren eigenen Webhook erstellen.

Im Abschnitt mit den Warnungsregeln haben sowohl pgDash als auch ClusterControl Vor- und Nachteile. Der Vorteil von pgDash besteht darin, dass Sie sehr detaillierte Datenbankwarnungen in Bezug auf das, was gesendet wird, festlegen können, während der Nachteil darin besteht, dass Sie diese Einstellungen in jeder Datenbank vornehmen müssen (obwohl es eine Funktion zum Importieren aus anderen Datenbankkonfigurationen gibt.

ClusterControl fehlen detaillierte Ereigniswarnungen, nur allgemeine Datenbankereignisse, aber ClusterControl kann Warnungen senden, die sich nicht nur auf die Datenbank beziehen, sondern kann Ereigniswarnungen von Knoten, Clustern, Netzwerken usw. senden. Außerdem können Sie festlegen diese Warnungen für mehrere Datenbank-Cluster.

Im Abschnitt Integration von Drittanbietern bieten pgDash und ClusterControl Unterstützung für verschiedene Vorfallmanagement- und Kommunikationskanäle von Drittanbietern. Tatsächlich können beide ihren eigenen Webhook erstellen, damit er von anderen Diensten (z. B. Grafana) verwendet werden kann.