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 :
/metricsau 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
- Accéder à l'UI :
http://IP:8080 - Voir les containers détectés : l'UI liste automatiquement tous les containers en cours
- Cliquer sur un container : voir CPU, RAM, network, FS en temps réel
- Brancher Prometheus : scraper l'endpoint
http://cadvisor:8080/metrics - Exemple prometheus.yml :
scrape_configs: - job_name: cadvisor static_configs: - targets: ['cadvisor:8080'] - 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.sockpour 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
- cat-monitoring — Catégorie Monitoring
- app-prometheus — Collecteur de métriques
- app-netdata — Métriques système riche
- app-glances — Monitoring CLI/web
- app-traefik — Reverse proxy HTTPS
- observabilite — Vue d'ensemble observabilité
- checklist-monitoring-minimal — Checklist