Retour aux outils
MonitoringIntermédiaireOpen sourceAuto-hébergeablev0.57.0

cAdvisor

**L'analyseur de ressources pour containers** : CPU, RAM, réseau, FS par container. Par Google. La b

MAJ 2026-06-14
cAdvisor
Site officiel Code source★ 19 198

cAdvisor (Container Advisor) est un daemon de monitoring de containers développé par Google. Il collecte, agrège et expose les métriques d'utilisation des ressources (CPU, mémoire, réseau, filesystem) pour chaque container tournant sur un hôte.

Description

cAdvisor (Container Advisor) est un daemon de monitoring de containers développé par Google. Il collecte, agrège et expose les métriques d'utilisation des ressources (CPU, mémoire, réseau, filesystem) pour chaque container tournant sur un hôte.

cAdvisor est intégré nativement à Kubernetes (kubelet le lance automatiquement sur chaque node) et c'est la brique de base de la stack de monitoring containers. Il est conçu pour être branché sur Prometheus via son endpoint /metrics.

  • ✅ Métriques par container : CPU, RAM, réseau, FS, swap
  • ✅ Historique : ring buffer configurable (par défaut 1-2 min, extensible)
  • ✅ Auto-discovery : détecte tous les containers Docker/containerd/cri-o
  • ✅ Web UI : visualisation en temps réel (basique)
  • ✅ Endpoint Prometheus : /metrics au format natif
  • ✅ Léger : ~50-100 Mo de RAM par hôte
  • ✅ gRPC API pour intégration
  • ✅ Pas de configuration : zéro-config après install

Public cible : DevOps, SRE, plateforme, kubernetes admins. Utilisé en interne par toutes les stacks de monitoring de containers (Prometheus, Datadog, New Relic, etc.).

Comparaison : cAdvisor est à [[app-netdata]] ce que la jauge de vitesse est au tableau de bord complet : il fait une chose très bien (métriques containers). Pour les métriques système globales, on utilise plutôt node_exporter (Prometheus) ou Netdata. Pour les dashboards avancés, on agrège cAdvisor dans Prometheus + Grafana. cAdvisor ne se substitue pas à [[app-glances]] (qui est plus système) ni à [[app-uptime-kuma]] (qui est orienté uptime).

⚠️ License Custom (Apache-2.0 modifié) : libre pour usage, mais interdit de l'utiliser pour concurrencer Google (notamment Google Cloud). Pour de l'usage interne/self-hosted, c'est OK.

Installation

Option 1 : Docker (standalone, recommandé pour Docker hosts)

# docker-compose.yml
version: '3.8'
services:
  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    container_name: cadvisor
    restart: unless-stopped
    ports:
      - "8080:8080"  # Web UI
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /dev/disk/:/dev/disk:ro
    privileged: true
    devices:
      - /dev/kmsg
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.cadvisor.rule=Host(`cadvisor.example.com`)"
      - "traefik.http.routers.cadvisor.entrypoints=websecure"
      - "traefik.http.routers.cadvisor.tls.certresolver=letsencrypt"

Option 2 : Binaire natif (bare-metal)

# Télécharger depuis la page Releases
wget https://github.com/google/cadvisor/releases/download/v0.49.1/cadvisor-v0.49.1-linux-amd64
chmod +x cadvisor-v0.49.1-linux-amd64
sudo ./cadvisor-v0.49.1-linux-amd64

Option 3 : Kubernetes (intégré)

# Déjà inclus dans kubelet ! Voir l'endpoint :
# https://<node-ip>:10250/metrics/cadvisor
# Ou via le service cAdvisor standard
kubectl apply -f https://raw.githubusercontent.com/google/cadvisor/master/deploy/kubernetes/base/daemonset.yaml

Configuration

  1. Accéder à l'UI : http://IP:8080
  2. Voir les containers détectés : l'UI liste automatiquement tous les containers en cours
  3. Cliquer sur un container : voir CPU, RAM, network, FS en temps réel
  4. Brancher Prometheus : scraper l'endpoint http://cadvisor:8080/metrics
  5. Exemple prometheus.yml :
    scrape_configs:
      - job_name: cadvisor
        static_configs:
          - targets: ['cadvisor:8080']
    
  6. Importer les dashboards Grafana : il existe des dashboards Grafana pré-faits (ID 893, 179, etc.)

Alternatives

Open Source

  • node_exporter (Prometheus) — Métriques hôte (pas containers)
  • [[app-netdata]] — Métriques système + containers, plus complet
  • [[app-glances]] — CLI + web, orienté single-host
  • Prometheus + kube-state-metrics — Pour Kubernetes
  • OpenTelemetry Collector — Successeur moderne, vendor-neutral

Comparaison cAdvisor vs alternatives

CritèrecAdvisornode_exporterNetdata
CibleContainersHôte (OS)Hôte + containers
Métriques/container✅ Riche❌✅ Basique
Métriques hôte❌ (basique)✅ Très riche✅ Riche
RAM~100 Mo~30 Mo~200 Mo
Prometheus natif✅✅✅
Setup2 min2 min5 min

Verdict : cAdvisor est la brique indispensable du monitoring containers, mais ne suffit pas seul. À combiner avec node_exporter (host metrics) et Prometheus + Grafana pour une stack complète.

Propriétaires (ce que cAdvisor remplace)

  • Datadog Container Monitoring (payant par container)
  • New Relic Kubernetes (payant)
  • Sysdig Secure (payant)
  • Dynatrace Container Monitoring (payant)
  • AWS CloudWatch Container Insights (payant AWS)

Sécurité

  • Pas d'auth par défaut : protéger via reverse proxy ([[app-traefik]]) ou réseau interne
  • Endpoint /metrics : peut exposer des noms de containers et images — à protéger
  • Privileged + volumes read-only : cAdvisor a besoin d'accéder à /sys, /var/run/docker.sock pour fonctionner
  • HTTPS via [[app-traefik]] recommandé
  • Métriques à scrubber : par défaut cAdvisor n'expose pas de PII, mais vérifier les labels custom

Ressources