Moodle est un système de gestion de l'apprentissage (LMS) conçu pour fournir aux éducateurs, administrateurs et apprenants un système unique robuste, sécurisé et intégré pour créer des environnements d'apprentissage personnalisés. Il prend en charge différentes technologies de base de données (par exemple MariaDB, MySQL, PostgreSQL, etc.).
En raison du COVID-19, le travail et les études à domicile ont récemment augmenté de manière exponentielle, de sorte que la disponibilité et les performances de ce type de plateforme d'apprentissage deviennent de plus en plus importantes. La seule façon de vous assurer que tout se passe bien est de mettre en place un bon système de surveillance et d'alerte, mais la question est de savoir ce que vous devez surveiller pour vous assurer que vos systèmes fonctionnent correctement.
Dans ce blog, nous examinerons ce que vous devez surveiller dans une base de données PostgreSQL Moodle, et comment vous pouvez le faire plus facilement en utilisant ClusterControl.
Ce qu'il faut surveiller dans PostgreSQL
Lors de la surveillance d'un nœud ou d'un cluster 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.
Surveillance du système d'exploitation
Une chose importante (qui est commune à tous les moteurs de base de données et même à tous systems) consiste à surveiller le comportement du système d'exploitation. Voici 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 statistique 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 son 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
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.
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.
Surveiller votre base de données PostgreSQL Moodle 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. ClusterControl 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.
Il 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 permettent à la surveillance basée sur les agents de 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égrez-le à différents services tels que PagerDuty ou Slack.
Dans la section du moniteur de requêtes, vous pouvez trouver les principales requêtes, les les requêtes, les valeurs aberrantes des requêtes et les statistiques des requêtes pour surveiller le trafic de votre base de données.
Pour la gestion des sauvegardes, ClusterControl la centralise pour protéger, sécuriser et restaurer 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.
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 en ligne de commande pour gérer votre cluster de bases de données.
Liste des clusters
Liste des nœuds
Vous pouvez effectuer toutes les tâches que vous pouvez voir dans le ClusterControl UI (et même plus), et vous pouvez intégrer cette fonctionnalité à certains outils externes comme Slack, pour la gérer à partir de là.
Conclusion
La surveillance de votre base de données Moodle PostgreSQL est nécessaire mais aussi une tâche fastidieuse si vous ne disposez d'aucun outil pour vous aider. Dans ce blog, nous avons mentionné quelques mesures clés à surveiller dans votre base de données Moodle PostgreSQL et comment garder vos systèmes sous contrôle en utilisant ClusterControl.