Fonctionnalités Comparatif Pricing Alternatives Blog Docs English GitHub
dockerprometheusmonitoringtutorielself-hosted

Monitoring Docker Sans Prometheus : Le Guide Pratique

· 4 min de lecture ·Benjamin Touchard

Prometheus est la réponse par défaut à “comment monitorer mes conteneurs Docker ?” Mais pour la plupart des setups Docker Compose, c’est comme utiliser un télescope pour regarder de l’autre côté de la rue.

Ce guide vous montre comment monitorer toute votre stack Docker — conteneurs, endpoints, certificats, cron jobs, ressources — sans toucher à Prometheus.

Pourquoi Pas Prometheus ?

Prometheus est conçu pour des infrastructures distribuées à grande échelle. Pour monitorer des conteneurs Docker, vous avez besoin de :

  1. Prometheus lui-même — scrape les endpoints de métriques
  2. cAdvisor — expose les métriques conteneurs comme targets Prometheus
  3. node_exporter — expose les métriques de l’hôte
  4. Grafana — parce que Prometheus n’a pas de dashboard intégré
  5. Alertmanager — parce que les alertes Prometheus nécessitent un moteur de routage séparé

Soit 5 conteneurs, 3+ fichiers de config, et un langage de requête (PromQL) à apprendre — juste pour répondre à “est-ce que mes conteneurs tournent ?”

Pour un stack de 10-50 conteneurs sur un VPS, il y a des approches plus simples.

L’Approche API Docker

Docker sait déjà tout de vos conteneurs. L’API Docker Engine expose :

  • Les états des conteneurs (running, stopped, restarting, exited)
  • Les résultats des health checks
  • Les métriques CPU, mémoire, réseau et I/O disque par conteneur
  • Les événements en temps réel (start, stop, die, health_status)
  • Les labels, les groupes de projets Compose, les ports exposés

Un outil de monitoring qui se connecte directement à l’API Docker peut obtenir toutes ces données sans exporter intermédiaire. Pas de cAdvisor. Pas de pipeline de scraping. Pas de Prometheus.

Auto-découverte des conteneurs — états, ressources, top consommateurs

Ce Qu’il Faut Vraiment Monitorer

Pour un stack Docker Compose typique, il y a 6 choses qui comptent :

1. États des conteneurs

Est-ce que mes conteneurs tournent ? Y en a-t-il en boucle de redémarrage ? Est-ce qu’un a quitté avec un code non-zéro ?

C’est ce que Prometheus + cAdvisor vous donne — mais l’API Docker donne les mêmes données directement.

2. Endpoints HTTP/TCP

Est-ce que mon API répond ? Quelle est la latence ? Est-ce qu’elle renvoie le bon code de statut ?

Prometheus a besoin du Blackbox Exporter pour ça. Avec Maintenant, vous ajoutez des labels Docker :

labels:
  maintenant.endpoint.http: "https://api.example.com/health"
  maintenant.endpoint.interval: "30s"

Monitoring HTTP/TCP — latence, codes de statut

3. Certificats SSL

Est-ce que mes certificats sont valides ? Quand expirent-ils ? La chaîne est-elle complète ?

Prometheus a besoin d’un exporter SSL dédié. Maintenant auto-détecte les certificats sur tous les endpoints HTTPS.

Suivi des certificats SSL/TLS — expiration, validation de chaîne

4. Cron jobs et tâches planifiées

Mon backup a-t-il tourné cette nuit ? A-t-il réussi ?

Prometheus n’a pas de solution intégrée pour ça. Maintenant inclut un système de heartbeat avec signaux start/end.

Monitoring heartbeat — tâches cron, tâches planifiées

5. Ressources système

CPU, RAM, disque, réseau — par conteneur et par hôte.

C’est là que Prometheus brille avec sa granularité à la seconde. Mais pour “est-ce que mon disque se remplit ?” et “quel conteneur mange toute la RAM ?”, vous n’avez pas besoin d’une résolution à la seconde.

Ressources système — CPU, mémoire, disque, réseau

6. Détection des mises à jour

Y a-t-il des versions plus récentes de mes images Docker ? Certaines sont-elles des correctifs de sécurité ?

Prometheus ne fait pas ça du tout. Maintenant scanne les registres OCI et compare les digests.

Update intelligence — critiques, disponibles, versions épinglées

Le Setup Pratique

Un conteneur. Pas de fichier de config. Pas de PromQL.

services:
  # Vos services existants...
  api:
    image: myapp:latest
    labels:
      maintenant.endpoint.http: "http://api:3000/health"

  postgres:
    image: postgres:16
    labels:
      maintenant.endpoint.tcp: "postgres:5432"

  # Ajoutez Maintenant
  maintenant:
    image: ghcr.io/kolapsis/maintenant:latest
    ports:
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /proc:/host/proc:ro
      - maintenant-data:/data
    environment:
      MAINTENANT_ADDR: "0.0.0.0:8080"
      MAINTENANT_DB: "/data/maintenant.db"
    restart: unless-stopped

volumes:
  maintenant-data:
docker compose up -d

Ouvrez http://votre-serveur:8080. Tous vos conteneurs sont déjà là. Les endpoints sont monitorés. Les certificats SSL sont suivis. Les ressources sont graphées.

Pas de prometheus.yml. Pas de datasource Grafana. Pas de PromQL à apprendre.

Quand Vous AVEZ Besoin de Prometheus

Gardez Prometheus si vous avez besoin de :

  • Granularité à la seconde pour le debugging de performance
  • Métriques applicatives custom (code instrumenté Go/Java/Python)
  • PromQL pour l’exploration ad-hoc de données
  • Fédération multi-cluster
  • Stockage de métriques long terme (années)

Pour tout le reste — et ça couvre 95% des stacks Docker self-hosted — vous pouvez passer Prometheus entièrement.

Lire le comparatif complet : Maintenant vs Prometheus + Grafana →

← Monitoring Docker Léger pour Homelab Monitoring en Binaire Unique : Pourquoi C'est … →

Prêt à essayer Maintenant ?

Un conteneur, zéro config. Monitoring complet en 30 secondes.

Installer