Actualités
NOUVEAU Serverspace Centre de données en Ouzbékistan : Tachkent
Serverspace Black Friday
BS
Juin 24 2025
Mise à jour le 24 juin 2025

Surveillance de la base de données avec Prometheus Configurer des métriques pour MySQL et PostgreSQL dans les environnements virtuels

Les bases de données sont au cœur des applications, et leurs défaillances peuvent avoir de graves conséquences. Les outils de surveillance traditionnels passent souvent inaperçus face aux problèmes internes des SGBD. Prometheus est un système qui collecte et analyse les indicateurs en temps réel, aidant ainsi les ingénieurs SRE à prévenir et diagnostiquer les problèmes. Ce guide vous explique comment configurer la surveillance. PostgreSQL et MySQL avec Prométhée.

 

Prometheus : un outil de résolution de problèmes dans le monde des bases de données

Pas seulement une surveillance, mais un détective en temps réel :

Prometheus est un système open source conçu pour diagnostiquer les systèmes distribués complexes. Sa philosophie : « Chaque indicateur est un indice. Chaque graphique raconte l'histoire d'un problème. »

Comment fonctionne le détective :

  • Modèle de traction :
    • Prometheus collecte activement les métriques des systèmes surveillés.
  • Multidimensionnalité :
    • Chaque métrique possède des étiquettes (base de données, table, utilisateur).
  • PromQL :
    • Un langage de requête permettant d'étudier les relations entre les événements.
  • Stockage de séries chronologiques :
    • Toutes les données sont stockées pour une analyse post-mortem.
  • Analogie avec le monde réel :
    • Si Zabbix est un radar de police (suivant la vitesse), Prometheus est un système de surveillance par satellite, montrant *pourquoi* le conducteur a accéléré, où il se dirige et quels risques l'attendent.

Pourquoi Prométhée ? Les dures vérités

Avantages :

  • Diagnostics de niveau expert :
    • Il voit à l’intérieur du SGBD comme un chirurgien voit les organes.
  • Enquête sur les causes profondes :
    • Relie les échecs de la base de données aux actions de l'application.
  • Tranquillité d'esprit :
    • Alertes automatiques pour les problèmes *avant* qu'ils ne deviennent catastrophiques.
  • Écosystème Open Source :
    • Grafana pour la visualisation, Alertmanager pour les notifications.

Inconvénients :

  • Courbe d'apprentissage:
    • Nécessite une compréhension approfondie des composants internes du SGBD.
  • L'utilisation des ressources:
    • Le stockage métrique grandit comme une boule de neige.
  • Pas de stockage à long terme :
    • Par défaut, conserve les données pendant 15 jours seulement.

Fait concret :

  • 68 % des entreprises utilisant Prometheus pour la surveillance de leurs bases de données ont découvert des problèmes cachés dont elles n'avaient pas conscience depuis des années.

Caractéristiques uniques : pourquoi cela change la donne

1. Indicateurs clés :

  • Temps d'exécution des transactions avec répartitions des 95e et 99e percentiles.
  • Efficacité du cache tampon, non pas en pourcentage, mais en tant que prédiction du temps jusqu'à l'effondrement.

2. Enquête sur les relations :

// Find users whose queries cause locks

pg_blocked_processes

* on (instance) group_left (usename)

pg_stat_activity{state="active"}

3. Analyse prédictive:

// Predict when tablespace will run out

predict_linear(pg_tablespace_size[24h], 86400 * 30)

Déploiement de Prometheus : pas une bataille, juste 5 minutes de travail

Étape 1 - Installation via Helm (Kubernetes):

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

helm install prometheus prometheus-community/kube-prometheus-stack

Étape 2 - Configuration des serveurs physiques (docker-compose) :

version: '3'

services:

prometheus:

image: prom/prometheus

ports:

- "9090:9090"

volumes:

- ./prometheus.yml:/etc/prometheus/prometheus.yml

Étape 3 - Configurer `prometheus.yml` (fragment) :

scrape_configs:

- job_name: 'postgres'

static_configs:

- targets: ['postgres-host:9187']

- job_name: 'mysql'

static_configs:

- targets: ['mysql-host:9104']

Configuration de la collecte de mesures : outils pour des analyses approfondies

Pour PostgreSQL:

Installer postgres_exporter :

docker run -d --name postgres_exporter \

-e DATA_SOURCE_NAME="postgresql://user:pass@host:5432/?sslmode=disable" \

quay.io/prometheuscommunity/postgres-exporter

Indicateurs clés dans PromQL :

// Deadlocks

pg_deadlocks_total

// Cache efficiency

pg_stat_database_blks_hit / (pg_stat_database_blks_read + pg_stat_database_blks_hit)

Pour MySQL:

Déployer mysqld_exporter :

docker run -d --name mysql_exporter \

-e DATA_SOURCE_NAME="user:pass@(host:3306)/" \

prom/mysqld-exporter

Mesures approfondies :

// Replication queue

mysql_slave_status_seconds_behind_master

// Temporary table issues

mysql_global_status_created_tmp_tables

Indicateurs pour SRE : pas seulement des chiffres, mais des signaux de détresse

PostgreSQL: Ce qui rend les administrateurs fous

Tueur silencieux: pg_stat_activité_en_attente

Ce que cela veut dire: Nombre de requêtes « bloquées ».

Seuil d'alerte: > 5 pendant plus de 2 minutes.

Bombe à retardement: blocages de la base de données pg_stat

Comment analyser :

rate(pg_stat_database_deadlocks[5m]) > 0.1

Effondrement imminent:pg_buffercache_usage_ratio

Valeur critique: 0.95 (nécessite une intervention immédiate) RAM expansion).

MySQL: Signes d'une crise cardiaque liée à une base de données

Symptôme mortel: mysql_slave_lag_seconds

Pourquoi c'est effrayant:

  • Décalage de réplication > 30 secondes = risque de perte de données.

Menace cachée: mysql_innodb_row_lock_time_avg

Diagnostic:

mysql_innodb_row_lock_time_avg > 500

- Précurseur d'échec : mysql_threads_running

Mesures d’urgence :

  • Si > 100, arrêtez immédiatement les requêtes de longue durée.

Tueurs de performances universels :

// Transaction cannibals

rate(pg_stat_database_xact_commit[1m]) / rate(pg_stat_database_xact_rollback[1m]) < 10 // Disk apocalypse rate(node_disk_io_time_seconds_total[1m]) > 0.8

La vie après la mise en œuvre : comment votre réalité change

Avant Prométhée :

  • « La base de données est à nouveau lente. Redémarrons et prions. »

Après Prométhée :

  • La requête de l'utilisateur `id=1347` sur la table `orders` bloque 5 transactions.

Cause : Jointure de boucle imbriquée sans index. Solution : Optimiser la requête ou ajouter un index.

Statistiques du monde réel :

Équipes utilisant Prometheus pour la surveillance des SGBD :

  • Temps de diagnostic réduit de 83 %.
  • Diminution des incidents P1/P0 de 40 %.
  • Charge de travail DBA réduite de 65 %.

Prometheus ne se contente pas de présenter des indicateurs. Il fait de vous un visionnaire qui :

  • Voit l'invisible :
    • Comment la longue requête d'un seul utilisateur peut faire planter le système de milliers de personnes.
  • Prédit l'avenir :
    • Quand l'espace disque sera épuisé dans trois semaines.
  • Comprend le passé :
    • Pourquoi les performances ont chuté hier à 14h23.
Voter:
5 sur 5
Note moyenne : 5
Noté par : 1
1101 CT Amsterdam Pays-Bas, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

Vous pourriez aussi aimer...

Nous utilisons des cookies pour rendre votre expérience sur le Serverspace meilleur. En poursuivant votre navigation sur notre site, vous acceptez nos
Utilisation des cookies et Politique de confidentialité.