La correction est intégrée au TP (Voir les encadrés de couleur vert)
Ce que vous allez apprendre dans ce TP
- Configurer les labels HA
- Activer le HA tracker
- Observer la bascule
Introduction #
Ce que vous allez apprendre dans cette section
- Configurer les labels HA
- Activer le HA tracker
- Observer la bascule
Contexte. Pour ne plus perdre de métriques lors des redémarrages de Prometheus, l'équipe en lance deux identiques. Il faut éviter de stocker (et payer) chaque série deux fois.
Prérequis : TP précédent terminé · Durée estimée : 40 min
Haute disponibilité de la collecte sans doublons.Mise en place #
Étapes guidées, avec leur correction.
1. Ajouter Consul
Pourquoi ? Le HA tracker doit partager l'élection du leader entre tous les distributors : il lui faut un magasin clé-valeur (Consul ou etcd).
Ajoutez un service Consul au Compose.Voir la correction
consul: image: hashicorp/consul:latest command: agent -dev -client=0.0.0.02. Activer le HA tracker
Pourquoi ? Sans lui, Mimir accepterait les deux flux et refuserait une partie des échantillons comme doublons ou hors ordre.
Complétezmimir.yamlpour accepter les échantillons HA et stocker l'élection dans Consul.Voir la correction
limits: accept_ha_samples: true distributor: ha_tracker: enable_ha_tracker: true kvstore: store: consul consul: { host: consul:8500 }3. Deux Prometheus jumeaux
Pourquoi ? Même
Créezcluster,__replica__différent : c'est ce couple de labels qui permet l'élection.prom-a.ymletprom-b.ymlidentiques sauf la valeur de__replica__, et deux services Prometheus.Voir la correction
# prom-a.yml (prom-b.yml : __replica__: b) global: scrape_interval: 15s external_labels: { cluster: lab, __replica__: a } scrape_configs: - job_name: mimir static_configs: [{ targets: ["mimir:8080"] }] remote_write: - url: http://mimir:8080/api/v1/pushprom-a: image: prom/prometheus:latest volumes: ["./prom-a.yml:/etc/prometheus/prometheus.yml"] prom-b: image: prom/prometheus:latest volumes: ["./prom-b.yml:/etc/prometheus/prometheus.yml"]4. Observer l'élection
Pourquoi ? On vérifie qu'un seul réplica est retenu et que l'autre est bien écarté, pas rejeté en erreur.
Consultez la page du HA tracker et la métrique des échantillons dédupliqués.Voir la correction
curl -s localhost:8080/distributor/ha_tracker | grep -A2 lab curl -sG localhost:8080/prometheus/api/v1/query --data-urlencode 'query=sum(rate(cortex_distributor_deduped_samples_total[1m]))'5. Provoquer une bascule
Pourquoi ? Le vrai test de la haute disponibilité : arrêter le leader et constater que les données continuent d'arriver.
Arrêtez le Prometheus élu, attendez 30 s, puis vérifiez que l'autre réplica a pris le relais et qu'il n'y a pas de trou dansup{job="mimir"}.Voir la correction
docker compose stop prom-a sleep 40 curl -s localhost:8080/distributor/ha_tracker | grep -A2 lab # le réplica b est élu docker compose start prom-a
Niveau de difficulté : ●●●○○ (3/5)
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
💬 Questions sur cette leçon
Aucune question pour l'instant : soyez le premier à demander de l'aide ou à partager votre configuration.
Articles recommandés
Mimir : le chemin d'écriture (distributor, ingesters, réplication et déduplication HA)
Comment Mimir ingère les métriques : remote_write, validation et limites du distributor, hash rin...
Pourquoi Grafana Mimir ? Architecture et modes de déploiement
Les limites de Prometheus seul, ce qu'apporte Mimir (stockage long terme, haute disponibilité, mu...
Thanos, Grafana Mimir ou VictoriaMetrics : quel stockage long terme pour Prometheus ?
Comparatif détaillé de trois solutions de stockage long terme pour Prometheus : architecture, sto...
Bonnes pratiques Prometheus : métriques, cardinalité, règles et exploitation
Bonnes pratiques Prometheus : nommage des métriques, labels et cardinalité, intervalles de scrape...
Zabbix en production : proxies, performance, haute disponibilité et Prometheus
Faire grandir Zabbix : proxies, dimensionnement des processus, base de données et TimescaleDB, ho...
Thanos : étendre Prometheus (haute disponibilité, vue globale et rétention longue)
Comprendre pourquoi et comment utiliser Thanos : limites de Prometheus, composants (Sidecar, Quer...
HAProxy dans Kubernetes : L'Ingress Controller Haute Performance
Découvrez en profondeur l'intégration de HAProxy dans Kubernetes. Architecture Direct-to-Pod, opt...
Mimir : ruler, Alertmanager et mimirtool
Évaluer des règles d'enregistrement et d'alerte dans Mimir, configurer l'Alertmanager multi-tenan...
Haute disponibilité et exploitation d'Alertmanager
Monter un cluster Alertmanager hautement disponible (gossip), configurer Prometheus pour tous les...