5.0 KiB
5.0 KiB
title: Prometheus created: 2026-06-06 updated: 2026-06-06 type: app tags: [catalogue, monitoring, observability, time-series, kubernetes, go] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/prometheus/prometheus]
📊 Prometheus
Le standard industriel pour la collecte et le stockage de métriques time-series. Indispensable pour Kubernetes et microservices.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | prometheus.io |
| GitHub | prometheus/prometheus |
| License | Apache-2.0 |
| Langage | Go |
| Étoiles GitHub | 64k ⭐ |
| Dernière MAJ | 2026-06-05 |
| Catégorie | [[cat-monitoring |
📝 Description
Prometheus est un système de monitoring time-series conçu pour la fiabilité et la scalabilité. Utilisé par des milliers d'entreprises.
Caractéristiques :
- ✅ Modèle pull : Prometheus scrape les endpoints HTTP
/metrics - ✅ Time series database haute performance
- ✅ PromQL : langage de query puissant
- ✅ Alertmanager : gestion des alertes
- ✅ Multi-dimensional : labels sur les métriques
- ✅ Service discovery : auto-découverte des cibles (K8s, Consul, etc.)
- ✅ Storage : local (filesystem) ou remote
- ✅ Federation : Prometheus qui scrape d'autres Prometheus
Public cible : production, microservices, Kubernetes, équipes DevOps.
Inconvénient : complexe à mettre en place, pas de GUI native (utiliser Grafana).
🚀 Installation
Option 1 : Docker Compose (avec Grafana et Node Exporter)
# docker-compose.yml
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
ports:
- "9090:9090"
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=***
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
restart: unless-stopped
ports:
- "9100:9100"
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
volumes:
prometheus-data:
grafana-data:
Option 2 : Configuration (prometheus.yml)
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node'
static_configs:
- targets: ['node-exporter:9100']
- job_name: 'docker'
static_configs:
- targets: ['cadvisor:8080']
⚙️ Configuration Initiale
- Lancer la stack (Docker Compose ci-dessus)
- Accéder à Prometheus :
http://IP:9090 - Tester une query :
up(retourne 1 si scrape OK, 0 sinon) - Accéder à Grafana :
http://IP:3000(admin/admin) - Ajouter Prometheus comme data source :
http://prometheus:9090 - Importer un dashboard : Dashboards > Manage > Import > ID
1860(Node Exporter Full)
🔄 Alternatives
Open Source
- app-netdata — Pour visualisation temps réel
- app-glances — Plus simple
- VictoriaMetrics — TSDB compatible Prometheus, plus performant
- InfluxDB + Telegraf — Alternative TSDB
Comparaison Prometheus vs autres
| Critère | Prometheus | InfluxDB | VictoriaMetrics |
|---|---|---|---|
| Modèle | Pull | Push | Pull |
| Query language | PromQL | InfluxQL / Flux | PromQL |
| Ecosystem | Énorme | Grand | Compatible Prom |
| Performance | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Cloud-native | ✅ | ⚠️ | ✅ |
| Kubernetes | ✅ Standard | ⚠️ | ✅ |
Verdict : Prometheus pour le standard. VictoriaMetrics si vous avez énormément de métriques.
Propriétaires (ce que Prometheus remplace)
- Datadog ($15+/host/mois)
- New Relic (cher)
- Dynatrace (cher)
- Wavefront (VMware, cher)
🔐 Sécurité
- Auth basique ou OAuth sur Prometheus UI
- TLS pour les scrape configs
- Grafana : SSO, RBAC
- Alertmanager : auth + TLS
📚 Ressources
Pages Liées
- cat-monitoring — Catégorie Monitoring
- app-netdata — Visualisation temps réel
- observabilite — Concepts
- infrastructure-as-code — Pour gérer la config