DBAtlas · Atlas d'exploitation des bases de données

Supervision des bases de données avec Prometheus + Grafana

SupervisionNiveau: IntermédiaireDurée: 60–120 min

Met en place un serveur de supervision central (Prometheus, Alertmanager, Grafana) et ajoute sur les serveurs supervisés node_exporter ainsi que les exporters des bases de données choisies : PostgreSQL, MySQL, Oracle, SQL Server, MongoDB, Redis, Elasticsearch. Les utilisateurs de supervision à privilèges minimaux, les services systemd, les règles d'alerte de base, la notification par e-mail/webhook, le provisioning des datasources et des dashboards prêts à l'emploi sont inclus. Ce guide prolonge l'étape « Connecter la supervision » à la fin des guides d'installation des bases de données ; vous obtenez une supervision qui affiche les métriques de tous les serveurs sur un seul écran et envoie une notification en cas de problème.

Topologie: 1 serveur de supervision + serveurs supervisés

Avant de commencer

  • Le serveur de supervision et les serveurs Linux supervisés tournent sur un système d'exploitation pris en charge ; les horloges sont synchronisées (chrony). Un décalage d'horloge provoque des erreurs « out of bounds » et de fausses alertes dans Prometheus.
  • Le serveur de supervision dispose d'assez d'espace disque pour /var/lib/prometheus : au moins quelques Go pour … serveurs × … jours ; un disque/LV séparé est recommandé. Au moins 2 CPU et 4 Go de RAM sont nécessaires.
  • Les ports des exporters sont ouverts depuis le serveur de supervision (…) vers chaque serveur : 9100 (node)…, 9187 (PostgreSQL)……, 9104 (MySQL)……, 9161 (Oracle)……, 9216 (MongoDB)……, 9121 (Redis)……, 9114 (Elasticsearch)…… ; … vers les serveurs SQL Server…. … (Grafana) depuis les utilisateurs vers le serveur de supervision.
  • Les serveurs peuvent accéder en HTTPS à github.com (binaires des exporters et de Prometheus), et le serveur de supervision également à …rpm.grafana.com…apt.grafana.com… ; sinon, téléchargez les fichiers sur une autre machine et copiez-les.
  • Sur les serveurs PostgreSQL, pg_hba.conf contient host all all 127.0.0.1/32 scram-sha-256 (ou une règle plus restrictive) : l'exporter se connecte localement en TCP avec un mot de passe.
  • Vous disposez sur chaque base d'un compte d'administration capable de créer l'utilisateur de supervision (PostgreSQL : postgres, MySQL : root, Oracle : SYSDBA, SQL Server : sysadmin, MongoDB : userAdmin, Redis : un utilisateur avec droits ACL, Elasticsearch : elastic).
  • Créez des entrées dans le coffre-fort de mots de passe pour les mots de passe des utilisateurs de supervision. Les mots de passe sont demandés de façon interactive pendant les étapes et ne sont écrits que dans des fichiers (0600) lisibles par l'utilisateur de l'exporter concerné.

Phases du guide

  • Préparation — Installer les outils de base et synchroniser l'horloge · Firewall : ouvrir les ports des exporters au serveur de supervision · Firewall : ouvrir le port de Grafana
  • node_exporter (métriques du système d'exploitation) — Télécharger et installer node_exporter · Définir le service node_exporter · Démarrer node_exporter
  • PostgreSQL : postgres_exporter — Créer le rôle de supervision (pg_monitor) · Définir le mot de passe du rôle de supervision · Télécharger et installer postgres_exporter · Écrire les paramètres de connexion et le fichier de mot de passe · Définir le service postgres_exporter · Démarrer postgres_exporter
  • MySQL : mysqld_exporter — Créer l'utilisateur de supervision et le fichier d'identifiants de l'exporter · Télécharger et installer mysqld_exporter · Définir le service mysqld_exporter · Démarrer mysqld_exporter
  • Oracle : oracledb_exporter — Créer l'utilisateur de supervision · Télécharger et installer oracledb_exporter · Écrire la configuration de l'exporter · Définir le service oracledb_exporter · Démarrer oracledb_exporter
  • SQL Server : sql_exporter — Créer le login de supervision (sur le SQL Server …) · Télécharger et installer sql_exporter · Écrire la configuration de la cible (…) · Définir le modèle de service sql_exporter · Démarrer sql_exporter (…)
  • MongoDB : mongodb_exporter — Créer l'utilisateur de supervision (mongosh) · Télécharger et installer mongodb_exporter · Écrire le fichier d'identifiants · Définir le service mongodb_exporter · Démarrer mongodb_exporter
  • Redis : redis_exporter — Créer l'utilisateur de supervision (ACL) · Télécharger et installer redis_exporter · Écrire le fichier d'identifiants · Définir le service redis_exporter · Démarrer redis_exporter
  • Elasticsearch : elasticsearch_exporter — Créer le rôle et l'utilisateur de supervision · Télécharger et installer elasticsearch_exporter · Écrire le certificat de la CA et le fichier d'identifiants · Définir le service elasticsearch_exporter · Démarrer elasticsearch_exporter
  • Prometheus — Télécharger et installer Prometheus · Définir les cibles de scrape (prometheus.yml) · Écrire les règles d'alerte · Valider la configuration · Définir le service Prometheus · Démarrer Prometheus
  • Alertmanager — Télécharger et installer Alertmanager · Écrire la configuration des notifications · Valider la configuration · Définir le service Alertmanager · Démarrer Alertmanager
  • Grafana — Définir le dépôt Grafana · Définir le dépôt Grafana · Installer Grafana · Appliquer les paramètres de sécurité · Définir la datasource Prometheus (provisioning) · Définir le provisioning des dashboards …
  • Vérification — Vérifier que toutes les cibles sont UP · Vérifier que les règles sont chargées · Envoyer une alerte de test · Vérifier les dashboards Grafana
  • Après l'installation — Sauvegarder le système de supervision · Appliquer la liste de contrôle de sécurité
Ouvrir le plan pas à pas adapté à votre environnement →