- Version : Prometheus 3.11.3 + Grafana 13.0.1 + Node Exporter 1.9.0 — tous gratuits et open-source
- Ce qu'il faut faire : Installer Prometheus, Node Exporter et Grafana sur Ubuntu, configurer les targets et importer le dashboard ID 1860
- Piège fréquent : Oublier
sudo systemctl daemon-reloadaprès la création des services systemd → les services ne démarrent pas - Délai : 25 minutes sur un serveur Ubuntu 22.04+
Introduction
Vous allez installer Prometheus 3.11.3 (collecte de métriques) et Grafana 13.0.1 (tableaux de bord visuels) sur un serveur Ubuntu 22.04/24.04 pour monitorer CPU, RAM, disque et réseau en temps réel — le tout gratuit et open-source (Apache 2.0 / AGPLv3). Documentation officielle Prometheus | Documentation officielle Grafana.
Ce que vous allez construire et pourquoi en 2026
Un stack de surveillance complet : Prometheus scrape les métriques de votre serveur toutes les 15 secondes via Node Exporter, et Grafana affiche des dashboards en temps réel avec alertes. Prérequis : un serveur Ubuntu 22.04+ avec 2 Go RAM minimum et accès sudo. Temps estimé : 25 minutes. Aucun GPU requis. Les 3 composants tournent sur le même serveur (auto-monitoring) ou vous pouvez les séparer pour la production.
Installation : commandes exactes à copier
# Étape 1 — Télécharger Prometheus 3.11.3
wget https://github.com/prometheus/prometheus/releases/download/v3.11.3/prometheus-3.11.3.linux-amd64.tar.gz
tar xvfz prometheus-3.11.3.linux-amd64.tar.gz
cd prometheus-3.11.3.linux-amd64 # Étape 2 — Télécharger Node Exporter 1.9.0
wget https://github.com/prometheus/node_exporter/releases/download/v1.9.0/node_exporter-1.9.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.9.0.linux-amd64.tar.gz # Étape 3 — Installer Grafana via APT
sudo apt-get install -y apt-transport-https wget gnupg
curl -fsSL https://apt.grafana.com/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/grafana.gpg
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install -y grafana
Résultat attendu : prometheus et node_exporter sont dans votre dossier utilisateur, Grafana est installé comme service systemd. Erreur courante : "Connection refused" sur apt update → vérifiez que le dépôt Grafana est bien dans /etc/apt/sources.list.d/grafana.list.
Configuration : les fichiers et variables à définir
Créez la configuration Prometheus prometheus.yml :
global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "node" static_configs: - targets: ["localhost:9100"]
Cette configuration indique à Prometheus de collecter ses propres métriques sur le port 9090 et les métriques système via Node Exporter sur le port 9100, toutes les 15 secondes. Pour surveiller plusieurs serveurs, ajoutez leurs adresses IP dans targets : ["localhost:9100", "192.168.1.50:9100"].
Le code du projet : construire la fonctionnalité principale
Créez les services systemd pour lancer Prometheus et Node Exporter au démarrage :
# /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target [Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus/ \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries [Install]
WantedBy=multi-user.target
# /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target [Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter \ --collector.filesystem.mount-points-exclude="^/(dev|proc|sys|var/lib/docker/.+)($|/)" [Install]
WantedBy=multi-user.target
Installez les binaires et créez les utilisateurs :
# Copier les binaires
sudo cp prometheus-3.11.3.linux-amd64/prometheus /usr/local/bin/
sudo cp prometheus-3.11.3.linux-amd64/promtool /usr/local/bin/
sudo cp node_exporter-1.9.0.linux-amd64/node_exporter /usr/local/bin/ # Créer les utilisateurs système
sudo useradd --no-create-home --shell /bin/false prometheus
sudo useradd --no-create-home --shell /bin/false node_exporter # Créer les dossiers de configuration
sudo mkdir -p /etc/prometheus /var/lib/prometheus
sudo cp -r prometheus-3.11.3.linux-amd64/consoles /etc/prometheus/
sudo cp -r prometheus-3.11.3.linux-amd64/console_libraries /etc/prometheus/
sudo cp prometheus.yml /etc/prometheus/prometheus.yml # Définir les permissions
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus # Activer et démarrer les services
sudo systemctl daemon-reload
sudo systemctl enable prometheus node_exporter grafana-server
sudo systemctl start prometheus node_exporter grafana-server Tester et valider que ça fonctionne
# Vérifier que Prometheus tourne
curl -s http://localhost:9090/api/v1/targets | python3 -m json.tool # Vérifier que Node Exporter répond
curl -s http://localhost:9100/metrics | head -5 # Vérifier que Grafana tourne
sudo systemctl status grafana-server
Résultat attendu : Prometheus affiche ses targets avec "health": "up", Node Exporter retourne des métriques comme node_cpu_seconds_total, et Grafana est actif sur le port 3000. Si "health": "down" apparaît pour un target, vérifiez que le service correspondant tourne avec sudo systemctl status prometheus ou node_exporter. Accédez à Grafana sur http://votre-serveur:3000 — identifiants par défaut : admin / admin (Grafana demande de changer le mot de passe à la première connexion).
Dans Grafana, ajoutez Prometheus comme data source : Configuration → Data Sources → Add data source → Prometheus → URL : http://localhost:9090 → Save & Test. Puis importez le dashboard Node Exporter : Dashboards → Import → entrez l'ID 1860 (dashboard communautaire officiel) → Load → Import.
Déployer et utiliser en production
Pour sécuriser l'installation en production, configurez Nginx en reverse proxy avec HTTPS :
sudo apt install nginx certbot python3-certbot-nginx
# Créer le virtual host /etc/nginx/sites-available/grafana
# pointant vers http://localhost:3000
# puis obtenir le certificat :
sudo certbot --nginx -d monitoring.votre-domaine.fr
Configurez les alertes dans Prometheus en créant /etc/prometheus/alert_rules.yml :
groups: - name: server_alerts rules: - alert: HighCPU expr: 100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80 for: 5m labels: severity: warning annotations: summary: "CPU élevé sur {{ $labels.instance }}" - alert: LowDiskSpace expr: (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100 < 10 for: 5m labels: severity: critical annotations: summary: "Espace disque critique sur {{ $labels.instance }}"
Ajoutez rule_files: ["alert_rules.yml"] dans prometheus.yml et rechargez : sudo systemctl reload prometheus.
Aller plus loin : 3 extensions concrètes
1. Ajouter Alertmanager pour les notifications — Installez Alertmanager (wget https://github.com/prometheus/alertmanager/releases/download/v0.28.1/alertmanager-0.28.1.linux-amd64.tar.gz) et configurez-le pour envoyer des alertes par email, Slack ou Discord. Ajoutez alerting: alertmanagers: - static_configs: - targets: ["localhost:9093"] dans prometheus.yml. Voir prometheus.io/docs/alerting.
2. Surveiller un serveur distant — Sur le serveur distant, installez uniquement Node Exporter (étapes 2-3), puis ajoutez son IP dans les targets Prometheus : - targets: ["192.168.1.50:9100"]. Un seul Prometheus peut surveiller des dizaines de serveurs.
3. Ajouter le dashboard MySQL ou Nginx — Pour surveiller MySQL, installez mysqld_exporter et importez le dashboard ID 7362. Pour Nginx, installez nginx-prometheus-exporter et importez le dashboard ID 12708. Voir prometheus.io/docs/instrumenting/exporters.
Étapes à suivre5
Étape 1 — Télécharger et installer Prometheus 3.11.3
Téléchargez Prometheus avecwget https://github.com/prometheus/prometheus/releases/download/v3.11.3/prometheus-3.11.3.linux-amd64.tar.gzpuis extrayez avectar xvfz prometheus-3.11.3.linux-amd64.tar.gz. Copiez les binaires :sudo cp prometheus-3.11.3.linux-amd64/prometheus /usr/local/bin/etsudo cp prometheus-3.11.3.linux-amd64/promtool /usr/local/bin/. Créez l’utilisateur système :sudo useradd --no-create-home --shell /bin/false prometheus. Créez les dossiers :sudo mkdir -p /etc/prometheus /var/lib/prometheuset copiez les fichiers de configuration et consoles avecsudo cp -r prometheus-3.11.3.linux-amd64/consoles /etc/prometheus/etsudo cp -r prometheus-3.11.3.linux-amd64/console_libraries /etc/prometheus/. Appliquez les permissions :sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus /usr/local/bin/prometheus /usr/local/bin/promtool. Vérifiez avec/usr/local/bin/prometheus --version— vous devez voirprometheus, version 3.11.3. Nettoyez l’archive avecrm -rf prometheus-3.11.3.linux-amd64*.Étape 2 — Installer Node Exporter pour les métriques système
Téléchargez Node Exporter :wget https://github.com/prometheus/node_exporter/releases/download/v1.9.0/node_exporter-1.9.0.linux-amd64.tar.gzet extrayez avectar xvfz node_exporter-1.9.0.linux-amd64.tar.gz. Copiez le binaire :sudo cp node_exporter-1.9.0.linux-amd64/node_exporter /usr/local/bin/. Créez l'utilisateur :sudo useradd --no-create-home --shell /bin/false node_exporter. Créez le service systemd/etc/systemd/system/node_exporter.serviceavecExecStart=/usr/local/bin/node_exporter --collector.filesystem.mount-points-exclude="^/(dev|proc|sys|var/lib/docker/.+)($|/)". Lancez :sudo systemctl daemon-reload && sudo systemctl enable node_exporter && sudo systemctl start node_exporter. Vérifiez aveccurl http://localhost:9100/metrics— vous devez voir des métriques commenode_cpu_seconds_total.Étape 3 — Configurer Prometheus pour scraper les métriques
Créez le fichier/etc/prometheus/prometheus.ymlavec :global: scrape_interval: 15s, puis deux scrape_configs : un pour Prometheus lui-même (job_name: "prometheus", targets:["localhost:9090"]) et un pour Node Exporter (job_name: "node", targets:["localhost:9100"]). Pour surveiller plusieurs serveurs, ajoutez chaque IP dans les targets séparées par des virgules. Créez le service systemd/etc/systemd/system/prometheus.serviceavecExecStart=/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/ --storage.tsdb.retention.time=30d --web.console.templates=/etc/prometheus/consoles --web.console.libraries=/etc/prometheus/console_libraries. L’optionretention.time=30dconserve 30 jours de données (ajustez selon votre espace disque). Appliquez les permissions :sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus. Lancez :sudo systemctl daemon-reload && sudo systemctl enable prometheus && sudo systemctl start prometheus. Vérifiez le statut avecsudo systemctl status prometheuspuis surhttp://votre-serveur:9090/targets— les deux targets doivent afficherUP.Étape 4 — Installer Grafana et connecter Prometheus
Installez Grafana via APT : ajoutez la clé GPG et le dépôt aveccurl -fsSL https://apt.grafana.com/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/grafana.gpgpuisecho "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list. Puissudo apt-get update && sudo apt-get install -y grafana. Lancez :sudo systemctl enable grafana-server && sudo systemctl start grafana-server. Accédez àhttp://votre-serveur:3000— identifiants par défaut : admin/admin. Ajoutez Prometheus comme data source : Configuration → Data Sources → Add data source → Prometheus → URL :http://localhost:9090→ Save & Test. Importez le dashboard Node Exporter : Dashboards → Import → ID1860→ Load → Import. Vous voyez maintenant CPU, RAM, disque et réseau en temps réel.Étape 5 — Configurer les alertes et sécuriser pour la production
Créez/etc/prometheus/alert_rules.ymlavec 2 règles :HighCPU(CPU > 80% pendant 5 min) etLowDiskSpace(disque < 10%). Ajoutezrule_files: ["alert_rules.yml"]dansprometheus.ymlet rechargez avecsudo systemctl reload prometheus. Vérifiez que les règles sont chargées surhttp://votre-serveur:9090/alerts. Pour les alertes email, installez Alertmanager : téléchargez depuis github.com/prometheus/alertmanager/releases, configurez/etc/alertmanager/alertmanager.ymlavec votre SMTP, et ajoutezalerting: alertmanagers: - static_configs: - targets: ["localhost:9093"]dansprometheus.yml. Pour sécuriser, installez Nginx en reverse proxy avec HTTPS via Let’s Encrypt :sudo apt install nginx certbot python3-certbot-nginx, configurez le virtual host pointant verslocalhost:3000, puissudo certbot --nginx -d monitoring.votre-domaine.fr. Bloquez les ports 9090 et 9100 avecsudo ufw deny 9090 && sudo ufw deny 9100— seul Nginx (443) doit être accessible publiquement. Pour mettre à jour Prometheus : téléchargez la nouvelle version et remplacez le binaire dans/usr/local/bin/.
Conseils pratiques
- Importez le dashboard Node Exporter ID
1860dans Grafana — c'est le dashboard officiel communautaire avec plus de 10 000 téléchargements, il couvre CPU, RAM, disque, réseau et load average sans configuration supplémentaire. - Utilisez
scrape_interval: 15s(valeur par défaut) — un intervalle plus court comme 5s consomme 3x plus de stockage sans gain significatif. Pour le monitoring de production, 15s est le standard de l'industrie. - Excluez les filesystems Docker du Node Exporter avec
--collector.filesystem.mount-points-exclude="^/(dev|proc|sys|var/lib/docker/.+)($|/)"pour éviter des métriques inutiles sur les conteneurs éphémères.
Points d'attention
- Erreur
"Connection refused"surlocalhost:9090→ vérifiez que le service tourne avecsudo systemctl status prometheus. Sifailed, consultez les logs avecsudo journalctl -u prometheus -n 50— la cause la plus fréquente est un fichierprometheus.ymlmal formaté (indentation YAML incorrecte). - Dashboard Grafana vide ("No data") → vérifiez que le data source Prometheus est bien configuré avec l'URL
http://localhost:9090(pashttp://0.0.0.0:9090) et que le jobnodeestUPsurhttp://votre-serveur:9090/targets. - Espace disque qui se remplit vite → Prometheus stocke les données dans
/var/lib/prometheus/. Par défaut, il conserve 15 jours de données (~1 Go pour un serveur). Ajoutez--storage.tsdb.retention.time=30ddans le service systemd pour 30 jours, ou configurez uncronqui archive les données anciennes.
Questions fréquentes5
Prometheus et Grafana fonctionnent-ils sans GPU ?
Oui. Prometheus et Grafana sont des applications Go/TypeScript qui n'utilisent aucun GPU. Ils ont besoin de 2 Go RAM minimum pour un serveur unique, et 4 Go pour surveiller 10+ serveurs.
Quelle version d'Ubuntu est nécessaire ?
Ubuntu 22.04 LTS ou 24.04 LTS sont recommandées. Prometheus 3.11.3 et Grafana 13.0.1 supportent également Debian 11+, CentOS 8+ et toute distribution Linux avec glibc 2.31+.
Prometheus et Grafana sont-ils gratuits ?
Comment surveiller plusieurs serveurs avec un seul Prometheus ?
- targets: ["192.168.1.50:9100", "192.168.1.51:9100"] dans prometheus.yml. Rechargez avec sudo systemctl reload prometheus. Un seul Prometheus peut surveiller 50+ serveurs.Combien d'espace disque consomme Prometheus ?
scrape_interval: 15s. Pour 10 serveurs, comptez 10 Go pour 15 jours. Ajustez la rétention avec --storage.tsdb.retention.time=30d dans le service systemd.Guides Technologie & IA
Voir toutConstruire un chatbot local avec Ollama et Python en 30 minutes
Utiliser DeepSeek V4 en 2026 pour améliorer la recherche
Utiliser Claude Opus 4.7 en 2026 pour améliorer la productivité
Comment créer et gérer ses mots de passe de manière sécurisée en 2026
Comment utiliser Ollama en 2026
Poursuivez votre lecture
Multi-catégories"Impôts du Cœur" : les agents des finances publiques proposent leur aide à la déclaration de revenus sur le marché
Comment refuser un loyer supérieur à 30 % du revenu en 2026 ?
Transmission d'entreprise 2026 : dispositifs fiscaux et étapes clés pour vendre ou céder son affaire
Équipe éditoriale GuidePratiquefr
Rédacteurs spécialisés en droit, fiscalité et finances
Rédigé et vérifié par notre équipe de rédacteurs spécialisés. Sources officielles consultées : service-public.fr, legifrance.gouv.fr, impots.gouv.fr, ameli.fr. Dernière vérification : 15 mai 2026.
Sources officielles consultées
Les informations contenues dans ce guide sont fournies à titre indicatif et ne remplacent pas un conseil professionnel personnalisé.