Hybrid Cloud est un concept récent qui s'est développé depuis quelques années, et est désormais une topologie courante dans toute entreprise pour un Plan de Reprise d'Activité (PRA), voire pour avoir une redondance sur vos systèmes.
Une fois que votre environnement de cloud hybride est opérationnel, vous devez savoir en permanence ce qui se passe. La surveillance est indispensable si vous voulez être sûr que tout se passe bien ou si vous devez changer quelque chose. Pour chaque technologie de base de données, il y a plusieurs choses à surveiller. Certains d'entre eux sont spécifiques au moteur de base de données, au fournisseur ou même à la version spécifique que vous utilisez.
Dans ce blog, nous verrons ce que vous devez surveiller dans une base de données PostgreSQL exécutée sur un environnement de cloud hybride et comment ClusterControl peut vous aider dans cette tâche.
Ce qu'il faut surveiller dans PostgreSQL
Lors de la surveillance d'un cluster ou d'un nœud de base 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 (qui est commune à tous les moteurs de base de données et même à tous les systèmes) 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 le ou 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
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
En général, les bases de données sont configurées avec la compatibilité et la stabilité par défaut, vous devez donc connaître vos requêtes et leur modèle, et configurer vos bases de données en fonction du trafic que vous avez. 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.
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 de connexion maximale dans la configuration de la base de données. La différence de nombre peut être une augmentation ou une diminution des connexions. La mauvaise utilisation du regroupement de connexions, le verrouillage ou les problèmes 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.
Statut de 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.
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.
Journaux de la base de données
Vous devez surveiller le journal de votre base de données pour les erreurs, les problèmes d'authentification ou même les requêtes de longue durée. La plupart des erreurs sont écrites dans le fichier journal avec des informations détaillées utiles pour les corriger.
Notifications et alertes
Surveiller simplement un système ne suffit pas 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. Ce travail d'alerte peut être effectué à l'aide d'alertes par e-mail, d'alertes par SMS ou d'autres outils tels que Slack.
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 fournit 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.
Un point important ici est que ClusterControl fonctionne sur le Cloud, sur site, ou même une combinaison des deux. L'exigence ici est d'avoir un accès SSH aux nœuds, puis ClusterControl s'en occupera.
Surveiller votre base de données PostgreSQL avec ClusterControl
ClusterControl est un système de gestion et de surveillance qui aide à déployer, gérer, surveiller et faire évoluer vos bases de données à partir d'une interface conviviale. Il prend en charge les meilleures technologies de base de données open source et vous pouvez automatiser de nombreuses tâches de base de données que vous devez effectuer régulièrement, telles que l'ajout et la mise à l'échelle de nouveaux nœuds, l'exécution de sauvegardes et de restaurations, etc.
ClusterControl vous permet de surveiller vos serveurs en temps réel avec un ensemble prédéfini de tableaux de bord 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 l'agent 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 s'intégrer à différents services tels que PagerDuty ou Slack.
Dans la section du moniteur de requêtes, vous pouvez trouver les principales requêtes, les requêtes en cours d'exécution, les requêtes aberrantes et les statistiques des requêtes pour surveiller le trafic de votre base de données.
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é, afin que vous puissiez vous assurer que la sauvegarde fonctionne.
Enfin, vous n'avez pas besoin d'accéder à votre nœud de base de données pour vérifier les journaux, vous pouvez trouver tous vos journaux de base de données centralisés dans la section ClusterControl Log.
Comme vous pouvez le voir, vous pouvez gérer toutes les choses mentionnées à partir du même système centralisé :ClusterControl.
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 de ligne de commande pour gérer ou surveiller votre cluster de bases de données.
Liste des clusters
Liste des nœuds
Vous pouvez effectuer toutes les tâches (et même plus) disponibles dans l'interface utilisateur de ClusterControl, et vous pouvez intégrer cette fonctionnalité à certains outils externes comme Slack, pour la gérer à partir de là.
Conclusion
Comme vous pouvez le constater, la surveillance est absolument nécessaire, qu'elle s'exécute sur site, sur le cloud ou même sur une combinaison d'entre eux, et la meilleure façon de procéder dépend de l'infrastructure et du système lui-même. Dans ce blog, nous avons mentionné quelques métriques importantes à surveiller dans votre environnement PostgreSQL, comment utiliser ClusterControl pour faire le travail.