DevOps31 janvier 2026 9 min de lecture

Comment Monitorer la Santé des Conteneurs Docker

Apprenez à configurer un monitoring complet de la santé des conteneurs Docker. Suivez le statut des conteneurs, l'utilisation des ressources et recevez des alertes.

WizStatus Team
Auteur

Les conteneurs Docker peuvent échouer silencieusement. Un conteneur peut être en cours d'exécution mais ne pas servir de requêtes. Voici comment configurer un monitoring de santé approprié pour votre infrastructure Docker.

Health Checks Natifs Docker

Ajouter HEALTHCHECK au Dockerfile

FROM node:18-alpine

WORKDIR /app
COPY . .
RUN npm install

# Configuration du health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
  CMD curl -f http://localhost:3000/health || exit 1

CMD ["npm", "start"]

Paramètres du Health Check

ParamètreDescriptionDéfaut
--intervalTemps entre les vérifications30s
--timeoutTemps max pour la vérification30s
--start-periodPériode de grâce au démarrage0s
--retriesÉchecs avant unhealthy3

Vérifier le Statut de Santé

# Voir le statut de santé
docker inspect --format='{{.State.Health.Status}}' container_name

# Observer les health checks en temps réel
docker events --filter event=health_status

# Lister tous les conteneurs avec statut de santé
docker ps --format "table {{.Names}}\t{{.Status}}"

Endpoints de Health Check

Health Check HTTP Simple

// Express.js
app.get('/health', (req, res) => {
  res.status(200).json({ status: 'healthy' });
});

Health Check Complet

app.get('/health', async (req, res) => {
  const health = {
    status: 'healthy',
    timestamp: new Date().toISOString(),
    checks: {}
  };

  // Vérifier la base de données
  try {
    await db.query('SELECT 1');
    health.checks.database = 'ok';
  } catch (err) {
    health.checks.database = 'fail';
    health.status = 'unhealthy';
  }

  // Vérifier Redis
  try {
    await redis.ping();
    health.checks.redis = 'ok';
  } catch (err) {
    health.checks.redis = 'fail';
    health.status = 'unhealthy';
  }

  const statusCode = health.status === 'healthy' ? 200 : 503;
  res.status(statusCode).json(health);
});

Health Checks Docker Compose

version: '3.8'

services:
  web:
    build: .
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    depends_on:
      db:
        condition: service_healthy

  db:
    image: postgres:15
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 10s
      timeout: 5s
      retries: 5

Monitoring des Ressources

Monitorer les Ressources des Conteneurs

# Stats en temps réel
docker stats

# Stats pour des conteneurs spécifiques
docker stats web db redis

# Snapshot unique
docker stats --no-stream

Métriques Clés à Suivre

MétriqueSeuil AvertissementSeuil Critique
Utilisation CPU>70%>90%
Utilisation Mémoire>80%>95%
I/O RéseauVariablePics soudains
I/O DisqueVariableHaute soutenue

Configuration Monitoring Externe

Monitorer les Endpoints des Conteneurs

Configurez le monitoring HTTP pour vos endpoints de conteneurs :

  1. Endpoint santé - https://app.example.com/health
  2. Endpoints API - Endpoints métier critiques
  3. Proxies base de données - Si exposés

Alertes de Redémarrage Conteneur

Créez un script pour détecter les redémarrages :

#!/bin/bash
# container-watch.sh

CONTAINER="my-app"
LAST_STARTED=""

while true; do
  STARTED=$(docker inspect --format='{{.State.StartedAt}}' $CONTAINER)

  if [ "$LAST_STARTED" != "" ] && [ "$STARTED" != "$LAST_STARTED" ]; then
    # Conteneur redémarré - envoyer alerte
    curl -X POST "https://your-webhook-url" \
      -d "{\"text\": \"Conteneur $CONTAINER redémarré\"}"
  fi

  LAST_STARTED=$STARTED
  sleep 60
done

Logging et Alerting

Centraliser les Logs des Conteneurs

# docker-compose.yml
services:
  web:
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

Alertes Basées sur les Logs

Monitorez les logs pour les patterns d'erreurs :

# Observer les erreurs en temps réel
docker logs -f container_name 2>&1 | grep -i error

Checklist Monitoring Conteneurs

  • HEALTHCHECK ajouté aux Dockerfiles
  • Endpoints de santé implémentés
  • Healthchecks Docker Compose configurés
  • Monitoring externe configuré
  • Alertes ressources configurées
  • Agrégation des logs activée
  • Alertes de redémarrage en place
  • Dépendances vérifiées
  • Canaux d'alerte configurés
  • Dashboard créé

Bonnes Pratiques

Conception des Health Checks

  • Gardez les health checks rapides (<1s)
  • Vérifiez toutes les dépendances critiques
  • Retournez les codes HTTP appropriés
  • Incluez des infos de diagnostic dans la réponse
  • Ne vérifiez pas les services externes

Stratégie de Monitoring

  • Monitorez à plusieurs niveaux (conteneur, service, infrastructure)
  • Définissez des seuils appropriés
  • Configurez des politiques d'escalade
  • Documentez votre configuration de monitoring
WizStatus peut monitorer vos endpoints de santé Docker avec des intervalles d'1 minute. Recevez des alertes instantanées quand les conteneurs deviennent unhealthy.

Articles connexes

Prévenir la Fatigue d'Alertes : Stratégies et Solutions
Bonnes Pratiques

Prévenir la Fatigue d'Alertes : Stratégies et Solutions

Combattez la fatigue d'alertes qui menace l'efficacité de vos équipes. Découvrez les stratégies pour optimiser vos alertes et maintenir une vigilance opérationnelle.
10 min de lecture
Chaos Engineering et Monitoring : Valider votre Résilience
DevOps

Chaos Engineering et Monitoring : Valider votre Résilience

Découvrez comment le chaos engineering et le monitoring se complètent pour construire des systèmes véritablement résilients. Méthodologies et outils pratiques.
12 min de lecture
Monitoring des Pipelines CI/CD : Métriques et Optimisation
DevOps

Monitoring des Pipelines CI/CD : Métriques et Optimisation

Optimisez vos pipelines CI/CD grâce au monitoring. Découvrez les métriques clés, détectez les goulots d'étranglement et améliorez votre vélocité de livraison.
11 min de lecture

Commencez à surveiller votre infrastructure dès aujourd'hui

Mettez ces conseils en pratique avec le monitoring WizStatus.

Essayer WizStatus Gratuitement