PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Alternatives à pgDash - Surveillance de la base de données PostgreSQL avec ClusterControl

La surveillance et les alertes de la base de données sont une partie particulièrement importante des opérations de la base de données, car nous devons comprendre l'état actuel de la base de données. Si vous ne disposez pas d'une bonne surveillance de la base de données, vous ne pourrez pas trouver rapidement les problèmes dans la base de données. Cela pourrait alors entraîner des temps d'arrêt.

Un outil disponible pour la surveillance est pgDash, une application SaaS de surveillance et d'alerte pour la base de données PostgreSQL.

Procédure d'installation de pgDash

L'inscription à pgDash peut être effectuée via le site Web ou peut également être téléchargée (auto-hébergée) comme fourni par RapidLoop.

Le processus d'installation de pgDash est simple, il suffit de télécharger le package nécessaire à partir de pgDash pour être configuré côté serveur hôte / base de données.

Vous pouvez exécuter le processus comme suit :

[[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

Outre pgDash, vous aurez besoin d'un autre paquet, pgmetrics, à installer pour la surveillance. pgmetrics est un utilitaire open source dont le travail consiste à collecter des informations et des statistiques dans la base de données nécessaires à pgDash, tandis que le travail de pgdash consiste à envoyer ces informations au tableau de bord.

Si vous souhaitez ajouter plus de bases de données à la plate-forme de surveillance, vous aurez besoin pour répéter le processus ci-dessus pour chaque base de données.

Bien que l'installation de pgDash soit simple, certains processus répétitifs peuvent devenir un problème si des bases de données supplémentaires doivent être surveillées. Vous devrez très probablement créer un script d'automatisation pour cela.

Métriques pgDash

Il existe 3 fonctionnalités principales sous pgDash Dashboard, à savoir : 

  • Tableau de bord  :se compose de sous-menus tels que :Vue d'ensemble, Base de données, Requêtes, Backend, Verrous, Tablespace, Réplication, Fichiers WAL, BG Writers, Vide, Rôles, Configuration.
  • Outils :se compose de sous-menus, tels que Index Management, Tablespace Management, Diagnostics et Top-K.
  • Alertes  :se composent de sous-menus tels que les alertes et les alertes de modification.

Surveillance PostgreSQL par ClusterControl 

La surveillance effectuée par ClusterControl utilise la méthode ssh et une connexion directe du nœud du contrôleur au nœud de la base de données cible pour collecter les informations nécessaires à afficher sur le tableau de bord.

ClusterControl dispose également d'une fonction de surveillance basée sur l'agent qui peut être facilement activée. Vous pouvez le voir ci-dessous...

ClusterControl effectuera ensuite le processus d'installation de prometheus, les exportateurs de nœuds et PostgreSQL exportateurs, dans la base de données ciblée qui vise à rassembler et à collecter les informations requises par le tableau de bord pour afficher les métriques.

Si la surveillance basée sur l'agent est active, toute nouvelle base de données cible sera automatiquement ajoutée et surveillée par la surveillance basée sur l'agent.

Tableaux de bord ClusterControl

Ici, vous pouvez voir des informations dans les écrans Présentation du cluster PostgreSQL et Informations système. Dans cette fonction, vous pouvez voir des informations détaillées telles que la version de la base de données, l'ID de transaction, le dernier point de contrôle et la date et l'heure d'activation du serveur. Ces informations sont illustrées ci-dessous :

Dans la page d'informations système, nous pouvons obtenir des informations telles que la charge moyenne, Utilisation de la mémoire, utilisation du swap, voir l'image ci-dessous :

  • Base de données  :vous pouvez obtenir des informations telles que le nom de la base de données, la taille de la base de données, le nombre de tables, l'index et également l'espace de table.
  • Requêtes :vous pouvez surveiller les appels, l'écriture sur le disque, la lecture sur le disque, l'accès au tampon à partir des requêtes. En outre, vous pouvez rechercher n'importe quelle requête qui s'exécute au cours d'une période spécifique.
  • Backend :vous pouvez surveiller l'état actuel du backend de la base de données, dans ces informations, des détails critiques sont fournis, tels que les backends en attente de verrous, les autres backends en attente, la transaction ouverte trop longtemps, le backend inactif dans la transaction. Vous pouvez également voir tous les backends qui s'exécutent dans la base de données.
  • Verrous :Vous pouvez vérifier le nombre total de verrous, de verrous non accordés et de requêtes bloquées.
  • Tablespace :fournit des informations relatives à l'espace de table, c'est-à-dire. taille de l'espace de table, utilisation du disque et des inodes.
  • Réplications  :vous pouvez surveiller l'état de votre réplication dans la base de données PostgreSQL, démarrer à partir de l'emplacement de réplication, de la réplication entrante, de la réplication sortante, des publications de réplication et des abonnements de réplication.
  • Wal Files  : Fournit des informations relatives au WAL (Write Ahead Log) ainsi que des statistiques, par exemple :  Nombre de fichiers WAL, Taux de génération WAL, Fichiers WAL générés toutes les heures.
  • Rédacteurs BG :fournit des informations relatives à la base de données des points de contrôle, au tampon écrit et aux paramètres liés à l'éditeur d'arrière-plan.
  • Progression du vide :contient des informations relatives au vide qui s'exécute dans la base de données, ainsi que des paramètres de vide.
  • Rôles  :contient des informations relatives aux rôles qui existent dans la base de données, y compris les privilèges.
  • Configuration :contient des paramètres dans la base de données PostgreSQL.

À l'intérieur des outils, il existe des sous-menus tels que la gestion de l'index qui fournissent des informations, c'est-à-dire. Index inutilisé, index Bloat, dan Index avec faible taux de réussite du cache. Tablespace Management fournit des informations relatives au Tablespace et aux autres objets disponibles sous.

Diagnostics, pour comprendre les problèmes potentiels pouvant survenir via les 10 tables les plus gonflées, les 10 index les plus gonflés, la liste des emplacements de réplication inactifs, les 10 transactions les plus longues, etc.

ClusterControl dispose de plusieurs métriques dans un menu séparé, à savoir Présentation, Nœuds, Tableau de bord, Moniteur de requêtes et Performances, voir l'image ci-dessous :

Lorsque Agent Based Monitoring est activé, donc toutes les informations relatives aux statistiques et d'autres informations relatives à la base de données seront stockées dans une base de données de séries chronologiques (prometheus). Vous pouvez voir ces informations dans ClusterControl comme illustré ci-dessous :

Dans le moniteur de requêtes, vous pouvez trouver les principales requêtes, les requêtes en cours d'exécution, les requêtes Menus Outliers ou Query Statistics. Ils fournissent des informations relatives à la requête en cours d'exécution, à la requête principale et aux statistiques de la base de données. Vous pouvez également configurer des requêtes lentes et des requêtes sans indexation.

Sur Performance, il existe des sous-menus tels que DB Growth qui peuvent afficher des informations sur les statistiques de taille de base de données et de table. Schema Analyzer fournit des informations relatives à l'index redondant et à la table sans clé primaire.

Alerte PostgreSQL

Il y a deux parties d'alerte...

  • Règles d'alerte :les règles d'alerte jouent un rôle majeur, vous pouvez définir des limites comme paramètres pouvant déclencher une alarme au DBA.
  • Intégration de tiers  :est un canal d'intégration à la plate-forme de gestion des incidents pour la communication et la collaboration tels que :PagerDuty, OpsGenie, Slack ou par e-mail.

PgDash propose de nombreuses options de paramètres de base de données que vous pouvez définir en relation avec la règle d'alerte, divisées en plusieurs couches à partir du serveur, de la base de données, de la table, de l'index, de l'espace de table et de la requête. Vous pouvez voir ces informations dans pgDash comme illustré ci-dessous...

En ce qui concerne le canal d'intégration tiers, pgDash prend en charge plusieurs canaux tels que comme Slack, Pagerduty, VictorOps, Xmatters, e-mail, ou créer leurs propres webhooks afin qu'ils puissent être consommés par d'autres services.

Ce qui suit est l'apparence de l'intégration tierce de pgDash :

Contrairement à pgDash, ClusterControl a une option d'alerte d'événement plus large et plus générale , en commençant par les alertes liées à l'hôte, au réseau, au cluster et à la base de données elle-même. Voici des exemples d'options d'événement pouvant être sélectionnées :

ClusterControl peut sélectionner plusieurs clusters de bases de données dans une alerte d'événement. L'intégration tierce de ClusterControl prend en charge plusieurs outils de gestion des incidents et de communication/collaboration tels que PagerDuty, VictorOps, Telegram, OpsGenie, Slack, ServiceNow, ou peut créer votre propre webhook.

Dans la section des règles d'alerte, pgDash et ClusterControl présentent des avantages et des inconvénients. L'avantage de pgDash est que vous pouvez définir des alertes de base de données très détaillées liées à ce qui sera envoyé, tandis que l'inconvénient est que vous devez effectuer ces réglages dans chaque base de données (bien qu'il existe une fonctionnalité pour importer à partir d'autres configurations de base de données.

ClusterControl manque d'alertes d'événements détaillées, uniquement d'événements généraux de base de données, mais ClusterControl peut envoyer des alertes non seulement liées à la base de données, mais peut également envoyer des alertes d'événements à partir de nœuds, de clusters, de réseaux, etc. En outre, vous pouvez définir ces alertes pour plusieurs clusters de bases de données.

Dans la section Intégration tierce, pgDash et ClusterControl prennent tous deux en charge divers canaux de communication et de gestion des incidents tiers. En fait, les deux peuvent créer leur propre webhook afin qu'il puisse être consommé par d'autres services (par exemple, Grafana).