--- 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](https://github.com/google/cadvisor) | | **License** | Custom (Apache-2.0 modifié) | | **Langage** | Go | | **Étoiles GitHub** | 19.2k ⭐ | | **Dernière MAJ** | 2026-06-07 | | **Catégorie** | [[cat-monitoring|Monitoring]], Containers | ## 📝 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) ```yaml # 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) ```bash # 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é) ```bash # Déjà inclus dans kubelet ! Voir l'endpoint : # https://: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** : ```yaml 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 - [GitHub google/cadvisor](https://github.com/google/cadvisor) - [Documentation](https://github.com/google/cadvisor/blob/master/docs/storage.md) - [Dashboards Grafana](https://grafana.com/grafana/dashboards/?search=cadvisor) - [Intégration Kubernetes](https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/) ## 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