RousselTMLEARNING

Article · Grafana Mimir : de la découverte à l'expertise

Ruler, Alertmanager et mimirtool

1. Le ruler #

Les règles Prometheus, évaluées sur toutes les données.

Principe #

Le ruler évalue les règles d'enregistrement et d'alerte au format Prometheus, par tenant, sur l'ensemble des données de Mimir (pas seulement celles d'un Prometheus). Les résultats des règles d'enregistrement sont réécrits dans Mimir ; les alertes sont envoyées à l'Alertmanager.

ruler:
  alertmanager_url: http://localhost:8080/alertmanager   # Alertmanager intégré
  rule_path: /data/ruler
ruler_storage:
  s3: { bucket_name: mimir-ruler }
Bonne Pratique : Déplacez les règles des Prometheus vers le ruler dès que vous agrégez plusieurs sources : une règle sum by (service) évaluée dans un Prometheus ne voit que ses propres cibles.

Un fichier de règles #

# rules/api.yaml
namespace: api
groups:
  - name: api-slo
    interval: 1m
    rules:
      - record: service:http_requests:rate5m
        expr: sum by (service) (rate(http_requests_total[5m]))
      - alert: ApiHighErrorRate
        expr: |
          sum by (service) (rate(http_requests_total{code=~"5.."}[5m]))
            / sum by (service) (rate(http_requests_total[5m])) > 0.05
        for: 10m
        labels: { severity: critical }
        annotations:
          summary: "{{ $labels.service }} : plus de 5 % d'erreurs" 

2. mimirtool #

Le couteau suisse de Mimir.

Installation et configuration #

# Binaire (Linux amd64)
curl -fLo mimirtool https://github.com/grafana/mimir/releases/latest/download/mimirtool-linux-amd64
chmod +x mimirtool

export MIMIR_ADDRESS=http://mimir:8080
export MIMIR_TENANT_ID=team-platform

Gérer les règles #

# Vérifier la syntaxe et le style
mimirtool rules check rules/*.yaml
mimirtool rules lint rules/*.yaml

# Charger un fichier, lister, comparer, synchroniser (GitOps)
mimirtool rules load rules/api.yaml
mimirtool rules list
mimirtool rules diff rules/*.yaml
mimirtool rules sync rules/*.yaml      # supprime aussi ce qui n'est plus dans Git

# Convertir des règles Prometheus existantes
mimirtool rules prepare -i rules/*.yaml
Bonne Pratique : Placez mimirtool rules diff dans la CI des pull requests et mimirtool rules sync dans le déploiement : les règles deviennent du code relu et versionné.

Analyser l'usage des métriques #

mimirtool analyze compare les métriques utilisées par vos dashboards et règles aux métriques stockées : idéal pour supprimer les séries que personne ne lit.

mimirtool analyze grafana --address=http://grafana:3000 --key=$GRAFANA_TOKEN   # metrics-in-grafana.json
mimirtool analyze ruler                                                           # metrics-in-ruler.json
mimirtool analyze prometheus --address=http://mimir:8080/prometheus --id=$MIMIR_TENANT_ID

3. L'Alertmanager multi-tenant #

Une configuration par tenant.

Configurer et charger #

# mimir.yaml
alertmanager:
  data_dir: /data/alertmanager
  external_url: http://mimir.example.com/alertmanager
  fallback_config_file: /etc/mimir/alertmanager-fallback.yaml
# alertmanager.yaml du tenant team-platform
route:
  receiver: slack
  group_by: [alertname, service]
receivers:
  - name: slack
    slack_configs:
      - api_url: https://hooks.slack.com/services/XXX
        channel: '#alertes-plateforme'
mimirtool alertmanager load alertmanager.yaml
mimirtool alertmanager get
À savoir : Grafana sait gérer cet Alertmanager : ajoutez une source de données de type Alertmanager pointant vers http://mimir:8080/ avec l'implémentation « Mimir », puis gérez règles et silences depuis Grafana Alerting.

📄 Mimir : ruler, Alertmanager et mimirtool →

Mon suivi

  • ⏱ Durée estimée : ≈ 9 min

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.

Poser une question sur cette leçon →

Articles recommandés

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...

Bonnes pratiques d'alerting : Prometheus, Alertmanager et astreinte

Check-list pour un alerting efficace : règles sur les symptômes, sévérités, routage par équipe, r...

Prometheus : alerter avec Alertmanager (règles, routage, silences)

Mettre en place l'alerting Prometheus : règles d'alerte, Alertmanager, routage, regroupement, inh...

Bonnes pratiques Prometheus : métriques, cardinalité, règles et exploitation

Bonnes pratiques Prometheus : nommage des métriques, labels et cardinalité, intervalles de scrape...

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...

Pourquoi Grafana Mimir ? Architecture et modes de déploiement

Les limites de Prometheus seul, ce qu'apporte Mimir (stockage long terme, haute disponibilité, mu...

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...

La stack LGTM (Loki, Grafana, Tempo, Mimir) : architecture et mise en place

Comprendre la stack LGTM de Grafana Labs : Loki pour les logs, Grafana pour la visualisation, Tem...

Thanos Ruler : règles et alertes sur la vue globale

Évaluer des règles d'enregistrement et d'alerte sur l'ensemble des clusters avec Thanos Ruler : c...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !