Files
wiki/Catalogue-Self-Hosted/apps/app-cadvisor.md
T
2026-06-09 18:40:21 +02:00

6.9 KiB


title: cAdvisor created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, monitoring, containers, docker, metrics, go, kubernetes] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/google/cadvisor]

📊 cAdvisor

L'analyseur de ressources pour containers : CPU, RAM, réseau, FS par container. Par Google. La brique de base du monitoring Docker/Kubernetes.

📋 Informations Générales

Champ Valeur
Site web (GitHub)
GitHub google/cadvisor
License Custom (Apache-2.0 modifié)
Langage Go
Étoiles GitHub 19.2k
Dernière MAJ 2026-06-07
Catégorie [[cat-monitoring

📝 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 Initiale

  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ère cAdvisor node_exporter Netdata
Cible Containers Hô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
Setup 2 min 2 min 5 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

Pages Liées