Un large éventail de ressources est disponible pour vous lors de la gestion à distance de vos clusters de bases de données PostgreSQL. Avec les bons outils, la gérer à distance n'est pas une tâche difficile.
L'utilisation de services entièrement gérés pour PostgreSQL offre une observabilité qui peut fournir la plupart de ce dont vous avez besoin pour gérer votre base de données. Ils vous fournissent un système d'alerte, des métriques, l'automatisation des tâches chronophages d'administration système, la gestion de vos sauvegardes, etc.
Lors de l'exécution sur site, le défi est différent. C'est ce que nous allons couvrir dans ce blog. Nous partagerons des conseils sur la gestion à distance de votre cluster de bases de données PostgreSQL.
Observabilité de la base de données
Le terme observabilité n'est peut-être pas familier à certaines personnes. L'observabilité n'est pas une chose du passé, c'est la tendance lors de la gestion de vos bases de données (ou même des applications PaaS ou SaaS). L'observabilité traite de la surveillance, mais dans une certaine mesure, elle couvre la capacité de déterminer l'état de santé et les performances de votre base de données et a une capacité proactive et réactive qui décide en fonction d'un certain état de vos nœuds de base de données.
ClusterControl en est un bon exemple. Lorsque ClusterControl détecte des avertissements basés sur les vérifications d'une configuration donnée, il enverra des alertes aux canaux fournis. Ceux-ci peuvent être configurés et personnalisés par le système ou l'administrateur de la base de données.
Si votre base de données principale a été dégradée et incapable de traiter les transactions (en lecture ou en écriture), ClusterControl réagira en conséquence et commencera à déclencher un basculement afin qu'un nouveau nœud puisse traiter la cause injustifiée du trafic excessif. Pendant que cela se produit, ClusterControl peut informer les ingénieurs de ce qui s'est passé en déclenchant des alarmes et en envoyant des alertes. Les journaux sont également centralisés et les tâches d'investigation et de diagnostic peuvent être effectuées en un seul endroit, ce qui vous permet de fournir un résultat rapide.
Bien que cela ne signifie pas que ClusterControl est un package complet pour l'observabilité, c'est l'un des outils puissants. Il existe des outils plus architecturés également pour gérer notamment dans des environnements conteneurisés comme Rancher mixé avec Datadog.
En quoi cela vous aide-t-il à gérer à distance ?
Un principe de base de la gestion est d'avoir l'esprit tranquille. Si un problème survient, les outils que vous utilisez pour l'observabilité doivent pouvoir vous avertir par e-mail, vous envoyer des SMS ou via des applications de pager (comme PagerDuty) pour vous alerter de l'état de votre cluster de bases de données,
ou vous pouvez recevoir des alertes comme ci-dessous...
Il est très important qu'il vous avertisse lorsque des modifications se produisent. Vous pouvez alors améliorer et analyser l'état de votre infrastructure et éviter tout impact pouvant affecter l'activité.
Automatisation de la base de données
Il est très important que la plupart des tâches chronophages soient automatisées. L'automatisation vous permet de réduire la main-d'œuvre. Que signifie automatiser vos clusters de bases de données PostgreSQL ?
Basculement
Le basculement est une approche automatique qui se produit lorsqu'un incident sans précédent se produit (comme une panne matérielle, une panne système, une coupure de courant dans votre nœud principal principal ou une perte de réseau dans l'ensemble du centre de données) . Votre capacité de basculement doit être régulièrement testée et suivre les pratiques standard de l'industrie. La découverte par le service d'une défaillance interne doit aller jusqu'au point où elle a été déterminée comme vraie et qu'elle se produit réellement.
Dans ClusterControl, lorsqu'un incident se produit, il déclenche le mécanisme de basculement et promeut le nœud de secours le plus à jour, puis déclenche des alarmes comme indiqué ci-dessous...
Ensuite, cela fonctionne en arrière-plan pour un basculement comme vous l'avez vu ci-dessous , la progression est en marche.
en laissant le résultat tel qu'il se termine ci-dessous...
Planification des sauvegardes
Les sauvegardes sont une partie très importante de la planification des sinistres et de la reprise (DRP). Les sauvegardes servent de colonne vertébrale lorsque les données de votre cluster partent à la dérive après la rencontre d'un cerveau partagé ou d'une partition réseau. Il y a certaines occasions où pg_rewind peut également être bénéfique, mais l'automatisation de vos sauvegardes est toujours très importante pour éviter une telle perte de données et un RPO et un RTO moindres.
Dans ClusterControl, vous pouvez effectuer ou créer une sauvegarde sans aucun outil spécial ou ajouter un utilitaire pour créer un script de sauvegarde automatisée. Tous sont là et ce sera à votre organisation quand la sauvegarde aura lieu et quelles sont les politiques de votre sauvegarde, y compris sa conservation. En fait, la chose la plus importante ici est que la sauvegarde n'interfère pas avec votre environnement de production et ne bloque pas vos nœuds lors de la sauvegarde.
La vérification des sauvegardes joue également un rôle très important ici. Rassurez-vous, votre sauvegarde doit être un type de sauvegarde valide et une copie fiable en cas de crise. Ajouter le mécanisme pour stocker votre sauvegarde non seulement dans vos locaux ou dans votre centre de données, mais également la stocker ailleurs en toute sécurité, comme dans le cloud ou sur AWS S3 ou Google Cloud Storage par exemple.
Avec ClusterControl, cela a été pris facilement et d'une seule main dans la plate-forme en suivant simplement l'interface graphique comme indiqué ci-dessous,
Cela vous permet de choisir la méthode de sauvegarde que vous choisissez, de la stocker dans le cloud pour ajouter plus de rétention et d'assurance de sauvegarde en répartissant votre copie de sauvegarde non seulement dans une source mais également dans le cloud. Ensuite, vous avez la possibilité de vérifier la sauvegarde une fois la création de la sauvegarde terminée pour vérifier si elle est valide ou non. Une partie de cela est également que vous pouvez choisir de chiffrer votre sauvegarde, ce qui est une pratique très importante lors du stockage de vos données au repos et du respect des directives réglementaires de sécurité.
Sécurité de la base de données
La sécurité est généralement la principale préoccupation de la majorité lorsqu'il s'agit de gérer à distance votre cluster de bases de données PostgreSQL. Qui pourra accéder à la base de données à distance ou doit-elle être uniquement locale ? Comment ajouter des restrictions de sécurité et comment gérer les utilisateurs et examiner l'autorisation de l'utilisateur par un analyste de la sécurité. Il est très important d'avoir un ensemble plus en place et de fournir une image claire de votre architecture afin qu'il puisse être disséqué où sont les failles et quelles sont les choses nécessaires pour améliorer ou renforcer la sécurité.
ClusterControl vous fournit une vue d'ensemble et une gestion de vos utilisateurs PostgreSQL et vous fournit une visualisation et un éditeur pour votre pg_hba.conf, qui gère la façon dont les utilisateurs peuvent être authentifiés.
Pour la gestion des utilisateurs, il fournit un aperçu de la liste des utilisateurs et de ses privilèges dans le cluster de bases de données. Il vous permet également ici de modifier ou de changer les privilèges de l'utilisateur si cela n'est pas conforme aux directives de sécurité et de l'entreprise. La gestion à distance nécessite que tous vos utilisateurs disposent d'autorisations et de rôles spécifiques et lorsqu'ils ne peuvent être utilisés ou accessibles qu'en limitant le rôle pour éviter d'endommager votre base de données.
Il est également très important dans votre PostgreSQL d'examiner et de vérifier qu'il n'y a pas d'interruption avec l'authentification de l'utilisateur. Quand il peut être autorisé et sa portée pour pouvoir se connecter aux serveurs. Il est préférable que cela soit visualisé comme nous l'avons ci-dessous,
Cela vous permet de vérifier facilement et d'éviter l'authentification négligée pour de telles failles possibles qu'un attaquant pourrait être en mesure de se connecter en raison de règles d'authentification faibles.
L'utilisation de SSL et du cryptage ajoute plus de sécurité et de robustesse lorsque votre base de données est accessible à distance. Mais si vous accédez à distance à votre base de données en dehors des locaux de votre organisation, il est préférable d'encapsuler vos données telles que la connexion via un VPN. Vous pouvez consulter notre blog sur Multi-DC PostgreSQL :Configuration d'un nœud de secours à une géolocalisation différente via un VPN.
Journaux de base de données centralisés
La centralisation des journaux agrégés vous offre un moyen très pratique d'étudier et de mettre en œuvre un outil d'analyse de la sécurité pour comprendre vos clusters de bases de données et leur comportement. Ceci est très avantageux lors de la gestion de bases de données distantes. Certaines approches courantes utilisent Logstash en utilisant la pile ELK ou la puissante gestion open source des journaux, Graylog.
Pourquoi est-il important de centraliser les journaux de votre base de données ?
Au cas où vous auriez besoin d'enquêter sur un problème à l'échelle du cluster et de voir ce qui s'est passé dans vos clusters de bases de données, vos proxys ou vos équilibreurs de charge. Il est très pratique de ne regarder qu'un seul endroit. Certains outils très riches et puissants comme je l'ai mentionné ci-dessus vous permettent de rechercher dynamiquement et en temps réel. Ils fournissent également des métriques et des graphiques, ce qui est un moyen d'analyse très pratique.
Avec ClusterControl, il y a une commodité fournie lors de l'accès aux journaux. Bien que les journaux ne soient pas collectés et stockés de manière centralisée, il vous offre une vue d'ensemble et la possibilité de lire les journaux. Voir ci-dessous...
Vous pouvez même consulter les travaux de ce que ClusterControl a détecté et a agi soit en fonction des alarmes, soit en passant par les travaux comme ci-dessous,
Conclusion
La gestion à distance de vos clusters de bases de données PostgreSQL peut être décourageante, en particulier en matière de sécurité, de surveillance et de basculement. Si vous disposez des bons outils, des normes de l'industrie et des meilleures pratiques en matière de mise en œuvre, de sécurité et d'observabilité, vous pouvez avoir l'esprit tranquille lorsque vous gérez votre base de données ; quel que soit votre emplacement.