RousselTMLEARNING

Observabilité

Déployer et exploiter Mimir sur Kubernetes

Installer Mimir avec le chart Helm mimir-distributed, dimensionner les composants, superviser Mimir avec le mixin officiel et diagnostiquer les erreurs les plus fréquentes.

1. Le chart Helm mimir-distributed #

Un déploiement microservices clé en main.

Installation #

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
kubectl create namespace mimir
helm install mimir grafana/mimir-distributed -n mimir -f values.yaml
# values.yaml (extrait)
mimir:
  structuredConfig:
    common:
      storage:
        backend: s3
        s3:
          endpoint: s3.eu-west-3.amazonaws.com
          region: eu-west-3
    blocks_storage:
      s3: { bucket_name: acme-mimir-blocks }
    ruler_storage:
      s3: { bucket_name: acme-mimir-ruler }
    alertmanager_storage:
      s3: { bucket_name: acme-mimir-alertmanager }
    limits:
      max_global_series_per_user: 3000000
      compactor_blocks_retention_period: 400d

minio:
  enabled: false        # MinIO intégré : pour les tests seulement

ingester:
  replicas: 3
  zoneAwareReplication: { enabled: true }
  persistentVolume: { size: 50Gi }
store_gateway:
  zoneAwareReplication: { enabled: true }
querier:
  replicas: 3
À savoir : Le chart fournit aussi un gateway nginx unique (écriture et lecture) : c'est l'URL à donner à Prometheus, Alloy et Grafana.
Bonne Pratique : Le dépôt du chart contient des fichiers small.yaml et large.yaml dimensionnés pour environ 1 million et 10 millions de séries actives : partez de l'un d'eux.

Ordres de grandeur #

ComposantDimensionné selon
distributorÉchantillons/s reçus (CPU)
ingesterSéries actives × facteur de réplication (mémoire, ~2,5 Ko/série en ordre de grandeur)
querierNombre et complexité des requêtes (CPU, mémoire)
store-gatewayNombre de blocs et taille des index (disque, mémoire)
compactorVolume ingéré par jour (disque temporaire)

2. Superviser Mimir #

Mimir surveille Mimir.

Le mixin officiel #

Le mimir-mixin fournit des dashboards Grafana (Writes, Reads, Queries, Compactor, Tenants, Overrides...), des règles d'enregistrement et des alertes avec runbooks. Le chart Helm peut les installer (metaMonitoring).

DashboardCe qu'on y lit
Mimir / WritesDébit, latence et erreurs par composant du chemin d'écriture
Mimir / ReadsLatence des requêtes, taux de cache, store-gateways
Mimir / TenantsSéries actives et échantillons rejetés par tenant
Mimir / CompactorDernière exécution, blocs en attente

3. Dépanner #

Les erreurs que tout le monde rencontre.

Diagnostic rapide #

SymptômeCause probableAction
429 ... per_user_series_limitLimite de séries du tenant atteinteRelever max_global_series_per_user ou réduire la cardinalité
400 ... out of order sampleÉchantillons en retard ou deux sources sans __replica__Vérifier les labels HA, ouvrir out_of_order_time_window
at least 2 live replicas requiredTrop d'ingesters indisponiblesVérifier /ingester/ring, oublier les instances mortes (« Forget »)
Trous dans les graphes après 12 hStore-gateway ne voit pas les blocsVérifier le compactor et le bucket index
Requêtes lentesCaches absents ou trop petitsDéployer memcached, vérifier max_query_parallelism
# Pages d'état utiles
curl -s http://mimir:8080/ready
curl -s http://mimir:8080/ingester/ring | head
curl -s http://mimir:8080/config | grep -A3 limits
kubectl -n mimir logs deploy/mimir-distributor | grep -i discarded

Articles liés

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, Tempo pour les …

Pourquoi Grafana Mimir ? Architecture et modes de déploiement

Les limites de Prometheus seul, ce qu'apporte Mimir (stockage long terme, haute disponibilité, multi-tenant),…

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 ring, réplicati…

Pour aller plus loin

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 !