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

Surveillance de la distribution Percona pour PostgreSQL - Indicateurs clés

La surveillance est la base pour savoir si vos systèmes fonctionnent correctement, et elle vous permet de résoudre ou de prévenir tout problème avant d'affecter votre entreprise. Même dans une technologie robuste comme PostgreSQL, la surveillance est un must, et l'objectif principal est de savoir quoi surveiller, sinon cela n'aurait aucun sens ou ne serait pas utile au cas où vous auriez besoin de l'utiliser. Dans ce blog, nous verrons ce qu'est Percona Distribution pour PostgreSQL et quelles sont les mesures clés à surveiller.

Distribution Percona pour PostgreSQL

C'est une collection d'outils pour vous aider à gérer votre système de base de données PostgreSQL. Il installe PostgreSQL et le complète par une sélection d'extensions qui permettent de résoudre efficacement les tâches pratiques essentielles, notamment :

  • pg_repack :Il reconstruit les objets de la base de données PostgreSQL.
  • pgaudit  :Il fournit une journalisation d'audit détaillée de session ou d'objet via la fonction de journalisation standard de PostgreSQL.
  • pgBackRest :Il s'agit d'une solution de sauvegarde et de restauration pour PostgreSQL.
  • Patroni :Il s'agit d'une solution de haute disponibilité pour PostgreSQL.
  • pg_stat_monitor :Il collecte et agrège des statistiques pour PostgreSQL et fournit des informations d'histogramme.
  • Une collection d'extensions de contribution PostgreSQL supplémentaires.

Percona Distribution pour PostgreSQL est également livré avec la bibliothèque libpq. Il contient un ensemble de fonctions de bibliothèque qui permettent aux programmes clients de transmettre des requêtes au serveur principal PostgreSQL et de recevoir les résultats de ces requêtes.

Ce qu'il faut surveiller dans la distribution Percona pour PostgreSQL

Lors de la surveillance d'un cluster de bases de données, il y a deux éléments principaux à prendre en compte :le système d'exploitation et la base de données elle-même. Vous devrez définir les métriques que vous allez surveiller des deux côtés et comment vous allez le faire.

Gardez à l'esprit que lorsqu'une de vos statistiques est affectée, cela peut également en affecter d'autres, ce qui complique la résolution du problème. Avoir un bon système de surveillance et d'alerte est important pour rendre cette tâche aussi simple que possible.

Surveillance du système d'exploitation

Une chose importante est de surveiller le comportement du système d'exploitation. Voyons quelques points à vérifier ici.

Utilisation du processeur

Un pourcentage excessif d'utilisation du processeur peut être un problème s'il ne s'agit pas d'un comportement habituel. Dans ce cas, il est important d'identifier les processus qui génèrent ce problème. Si le problème vient du processus de la base de données, vous devrez vérifier ce qui se passe dans la base de données.

Utilisation de la mémoire RAM ou SWAP

Si vous constatez une valeur élevée pour cette métrique et que rien n'a changé dans votre système, vous devez probablement vérifier la configuration de votre base de données. Des paramètres tels que shared_buffers et work_mem peuvent affecter cela directement car ils définissent la quantité de mémoire à utiliser pour la base de données PostgreSQL.

Utilisation du disque

Une augmentation anormale de l'utilisation de l'espace disque ou une consommation excessive d'accès au disque sont des éléments importants à surveiller car vous pourriez avoir un nombre élevé d'erreurs enregistrées dans le fichier journal PostgreSQL ou une mauvaise configuration du cache qui pourrait génèrent une consommation d'accès disque importante au lieu d'utiliser de la mémoire pour traiter les requêtes.

Moyenne de charge

Il est lié aux trois points mentionnés ci-dessus. Une charge moyenne élevée peut être générée par une utilisation excessive du processeur, de la RAM ou du disque.

Réseau

Un problème de réseau peut affecter tous les systèmes car l'application ne peut pas se connecter (ou connecter les paquets perdants) à la base de données, il s'agit donc d'une métrique importante à surveiller en effet. Vous pouvez surveiller la latence ou la perte de paquets, et le problème principal peut être une saturation du réseau, un problème matériel ou simplement une mauvaise configuration du réseau.

Surveillance de la base de données PostgreSQL

La surveillance de votre base de données PostgreSQL n'est pas seulement importante pour voir si vous rencontrez un problème, mais aussi pour savoir si vous devez modifier quelque chose pour améliorer les performances de votre base de données, c'est probablement l'une des choses les plus importantes à surveiller dans une base de données. Voyons quelques mesures qui sont importantes pour cela.

Surveillance des requêtes

Par défaut, PostgreSQL est configuré dans un souci de compatibilité et de stabilité, vous devez donc connaître vos requêtes et son modèle, et configurer vos bases de données en fonction du trafic dont vous disposez. Ici, vous pouvez utiliser la commande EXPLAIN pour vérifier le plan de requête pour une requête spécifique, et vous pouvez également surveiller la quantité de SELECT, INSERT, UPDATE ou DELETE sur chaque nœud. Si vous avez une longue requête ou un grand nombre de requêtes en cours d'exécution en même temps, cela pourrait être un problème pour tous les systèmes.

Surveillance des sessions actives

Vous devez également surveiller le nombre de sessions actives. Si vous êtes proche de la limite, vous devez vérifier si quelque chose ne va pas ou si vous avez juste besoin d'incrémenter la valeur max_connections. La différence de nombre peut être une augmentation ou une diminution des connexions. Une mauvaise utilisation du regroupement de connexions, un verrouillage ou un problème de réseau sont les problèmes les plus courants liés au nombre de connexions.

Verrous de base de données

Si vous avez une requête en attente d'une autre requête, vous devez vérifier si cette autre requête est un processus normal ou quelque chose de nouveau. Dans certains cas, si quelqu'un fait une mise à jour sur une grande table, par exemple, cette action peut affecter le comportement normal de votre base de données, générant un nombre élevé de verrous.

Surveillance de la réplication

Les mesures clés à surveiller pour la réplication sont le décalage et l'état de la réplication. Les problèmes les plus courants sont les problèmes de mise en réseau, les problèmes de ressources matérielles ou les problèmes de sous-dimensionnement. Si vous rencontrez un problème de réplication, vous devez le savoir dès que possible, car vous devrez le résoudre pour garantir la haute disponibilité de l'environnement.

Surveillance des sauvegardes

Éviter la perte de données est l'une des tâches de base du DBA, vous n'avez donc pas seulement besoin d'effectuer la sauvegarde, vous devez savoir si la sauvegarde est terminée et si elle est utilisable. Habituellement, ce dernier point n'est pas pris en compte, mais c'est probablement la vérification la plus importante dans un processus de sauvegarde.

Surveillance des journaux de la base de données

Vous devez surveiller le journal de votre base de données pour détecter des erreurs telles que FATAL ou un blocage, ou même des erreurs courantes telles que des problèmes d'authentification ou des requêtes de longue durée. La plupart des erreurs sont écrites dans le fichier journal avec des informations utiles détaillées pour y remédier.

Tableaux de bord

La visibilité est utile pour une détection rapide des problèmes. C'est certainement une tâche plus chronophage de lire une sortie de commande que de simplement regarder un graphique. Ainsi, l'utilisation d'un tableau de bord pourrait faire la différence entre la détection d'un problème maintenant ou dans les 15 prochaines minutes, bien sûr que ce temps pourrait être très important pour l'entreprise.

Alerte

Se contenter de surveiller un système n'a aucun sens si vous ne recevez pas de notification pour chaque problème. Sans système d'alerte, vous devriez vous rendre dans l'outil de surveillance pour voir si tout va bien, et il est possible que vous rencontriez un gros problème depuis plusieurs heures.

Surveiller votre base de données PostgreSQL avec ClusterControl

Il est vraiment difficile de trouver un outil pour surveiller toutes les métriques nécessaires pour PostgreSQL, en général, vous devrez en utiliser plusieurs et même certains scripts devront être créés. Une façon de centraliser la tâche de surveillance et d'alerte consiste à utiliser ClusterControl, qui vous offre des fonctionnalités telles que la gestion des sauvegardes, la surveillance et les alertes, le déploiement et la mise à l'échelle, la récupération automatique et des fonctionnalités plus importantes pour vous aider à gérer vos bases de données. Toutes ces fonctionnalités sur le même système.

ClusterControl dispose d'un ensemble prédéfini de tableaux de bord pour vous, pour analyser certaines des métriques les plus courantes.

Il vous permet de personnaliser les graphiques disponibles dans le cluster, et vous pouvez activer la surveillance basée sur les agents pour générer des tableaux de bord plus détaillés.

Vous pouvez également créer des alertes, qui vous informent des événements dans votre cluster, ou intégrer différents services tels que PagerDuty ou Slack.

Vous pouvez également consulter la section du moniteur de requête, où vous pouvez trouver le principales requêtes, les requêtes en cours d'exécution, les requêtes aberrantes et les statistiques des requêtes.

Avec ces fonctionnalités, vous pouvez voir comment va votre base de données PostgreSQL.

Pour la gestion des sauvegardes, ClusterControl la centralise pour protéger, sécuriser et récupérer vos données, et avec la fonction de sauvegarde de vérification, vous pouvez confirmer si la sauvegarde est bonne.

Cette tâche de sauvegarde de vérification restaurera la sauvegarde dans un hôte autonome séparé, donc vous pouvez vous assurer que la sauvegarde fonctionne.

Surveillance avec la ligne de commande ClusterControl

Pour les tâches de script et d'automatisation, ou même si vous préférez simplement la ligne de commande, ClusterControl dispose de l'outil s9s. Il s'agit d'un outil en ligne de commande pour gérer votre cluster de bases de données.

Liste des clusters

Liste des nœuds

Conclusion

La surveillance est absolument nécessaire, et la meilleure façon de le faire dépend de l'infrastructure et du système lui-même. Dans ce blog, nous vous présentons Percona Distribution pour PostgreSQL, et nous avons mentionné quelques métriques importantes à surveiller dans votre environnement PostgreSQL. Nous vous avons également montré comment ClusterControl est utile pour cette tâche.