1. Pourquoi un Ruler Thanos ? #
Les règles des Prometheus ne voient que leur périmètre.
Règles locales vs globales #
Une règle Prometheus ne peut utiliser que les données de son instance. Pour alerter sur « le taux d'erreurs total de tous les clusters » ou pour une règle nécessitant une rétention longue, il faut évaluer la règle sur la vue globale fournie par Thanos Query : c'est le rôle du Ruler.
2. Configurer le Ruler #
Commande, règles et Alertmanager.
Lancer thanos rule #
thanos rule \
--data-dir=/var/thanos/rule \
--eval-interval=30s \
--rule-file=/etc/thanos/rules/*.yaml \
--alert.query-url=http://thanos-query:10902 \
--query=thanos-query:10902 \
--alertmanagers.url=http://alertmanager:9093 \
--label='ruler_cluster="global"' \
--objstore.config-file=/etc/thanos/bucket.yml \
--http-address=0.0.0.0:10902 --grpc-address=0.0.0.0:10901# /etc/thanos/rules/global.yaml
groups:
- name: global-slo
interval: 1m
rules:
- record: global:http_requests:rate5m
expr: sum(rate(http_requests_total[5m]))
- alert: GlobalErrorRateHigh
expr: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.03
for: 10m
labels: { severity: critical }
annotations: { summary: "Plus de 3 % d'erreurs sur l'ensemble des clusters" }promtool check rules /etc/thanos/rules/global.yaml
curl -s localhost:10902/api/v1/rules | jq '.data.groups[].rules[] | {name, health}'
curl -s localhost:10902/api/v1/alerts3. Bonnes pratiques #
Éviter les pièges classiques.
Points d'attention #
- N'y placer que les règles qui nécessitent une vue globale : le reste reste sur les Prometheus locaux (plus fiable en cas de coupure réseau).
- Le Ruler dépend de Query : si Query est indisponible, aucune alerte n'est évaluée. Déployez-le en haute disponibilité (deux replicas, labels différents).
- Utilisez
--labelpour distinguer ses séries enregistrées dans le stockage objet. - Testez les règles avec
promtool test rulesavant déploiement.
Bonne Pratique : Mettez en place une alerte « Watchdog » (vector(1)) pour vérifier de bout en bout la chaîne Ruler → Alertmanager → récepteur.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
Thanos : étendre Prometheus (haute disponibilité, vue globale et rétention longue)
Comprendre pourquoi et comment utiliser Thanos : limites de Prometheus, composants (Sidecar, Quer...
Thanos Receive : ingérer du remote write et gérer le multi-tenant
Utiliser Thanos Receive : mode push avec remote write, hashring, réplication, multi-tenancy, conf...
Thanos Query et Query Frontend : une vue globale et dédupliquée
Configurer Thanos Query : endpoints StoreAPI, déduplication par replica label, partial response, ...
Mimir : ruler, Alertmanager et mimirtool
Évaluer des règles d'enregistrement et d'alerte dans Mimir, configurer l'Alertmanager multi-tenan...
Alerter sur les logs avec le Ruler de Loki
Mettre en place des alertes et des recording rules LogQL avec le Ruler Loki : configuration, fich...
Recording rules Prometheus : accélérer ses requêtes et ses tableaux de bord
Comprendre et maîtriser les recording rules de Prometheus : évaluation, convention de nommage, pi...
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...
Thanos Sidecar : accoler Thanos à Prometheus et téléverser vers le stockage objet
Mettre en place Thanos Sidecar : réglages Prometheus (external labels, blocs de 2 h), configurati...
Thanos Store Gateway et Compactor : historique, downsampling et rétention
Servir l'historique avec le Store Gateway et optimiser le stockage avec le Compactor : compaction...