Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+166
View File
@@ -0,0 +1,166 @@
---
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://<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** :
```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