Installer Prometheus, Node Exporter et Grafana sur Debian ou Ubuntu
Guide pas à pas pour monter une pile de supervision sur un serveur Debian/Ubuntu. Les versions utilisées ci-dessous sont les dernières stables au moment de la rédaction (août 2026) : Prometheus 3.13.1, Node Exporter 1.12.1, Grafana 13.1.1. Consultez les pages de publication avant de lancer quoi que ce soit, au cas où de plus récentes seraient sorties.
- Publications de Prometheus : https://github.com/prometheus/prometheus/releases
- Publications de Node Exporter : https://github.com/prometheus/node_exporter/releases
- Publications de Grafana : https://grafana.com/grafana/download
Architecture
+----------------+ scrapes :9100 +----------------+
| Node Exporter | <---------------- | Prometheus |
| :9100 | | :9090 |
+----------------+ +--------+-------+
|
| PromQL queries :9090
v
+----------------+
| Grafana |
| :3000 |
+----------------+
|
v
Browser / userPrérequis
- Un serveur Debian ou Ubuntu avec un accès sudo
curlettarinstallés- Les ports 9090 (Prometheus), 9100 (Node Exporter) et 3000 (Grafana) ouverts sur votre pare-feu si vous y accédez à distance
Partie 1 : installer Prometheus
Étape 1 : créer l'utilisateur système prometheus
sudo useradd --no-create-home --shell /bin/false prometheusÉtape 2 : créer les répertoires
sudo mkdir -p /etc/prometheus /var/lib/prometheusÉtape 3 : télécharger Prometheus
cd /tmp
curl -LO https://github.com/prometheus/prometheus/releases/download/v3.13.1/prometheus-3.13.1.linux-amd64.tar.gz
tar -xvf prometheus-3.13.1.linux-amd64.tar.gzÉtape 4 : installer les binaires
sudo cp prometheus-3.13.1.linux-amd64/prometheus /usr/local/bin/
sudo cp prometheus-3.13.1.linux-amd64/promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtoolÉtape 5 : installer les modèles de console et définir le propriétaire
sudo cp -r prometheus-3.13.1.linux-amd64/consoles /etc/prometheus
sudo cp -r prometheus-3.13.1.linux-amd64/console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheusÉtape 6 : créer le fichier de configuration
sudo tee /etc/prometheus/prometheus.yml > /dev/null <<EOF
global:
scrape_interval: 10s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
EOFLa tâche de collecte de Node Exporter est ajoutée en partie 3, une fois qu'il est installé.
Étape 7 : créer le service systemd
sudo tee /etc/systemd/system/prometheus.service > /dev/null <<EOF
[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 \\
--storage.tsdb.retention.time=365d
ExecReload=/bin/kill -HUP \$MAINPID
[Install]
WantedBy=multi-user.target
EOFExecReload est ce qui fait fonctionner systemctl reload prometheus en partie 3. Sans lui, systemd refuse le rechargement avec "Job type reload is not applicable", et il ne vous reste qu'un redémarrage complet. Notez la barre oblique inverse dans \$MAINPID : ce heredoc n'est pas entre guillemets, sinon le shell développerait la variable en rien au moment d'écrire le fichier.
Étape 8 : démarrer et activer Prometheus
sudo systemctl daemon-reload
sudo systemctl enable --now prometheusÉtape 9 : vérifier
sudo systemctl status prometheus
curl -s http://localhost:9090/-/healthyOuvrez http://<server-ip>:9090 dans un navigateur pour confirmer que l'interface se charge.
Nettoyer le téléchargement de Prometheus
rm -rf /tmp/prometheus-3.13.1.linux-amd64*Partie 2 : installer Node Exporter
Étape 1 : créer l'utilisateur système node_exporter
sudo useradd --no-create-home --shell /bin/false node_exporterÉtape 2 : télécharger Node Exporter
cd /tmp
curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.12.1/node_exporter-1.12.1.linux-amd64.tar.gz
tar -xvf node_exporter-1.12.1.linux-amd64.tar.gzÉtape 3 : installer le binaire
sudo cp node_exporter-1.12.1.linux-amd64/node_exporter /usr/local/bin/
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporterÉtape 4 : créer le service systemd
sudo tee /etc/systemd/system/node_exporter.service > /dev/null <<EOF
[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
[Install]
WantedBy=multi-user.target
EOFÉtape 5 : démarrer et activer Node Exporter
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporterÉtape 6 : vérifier
curl -s http://localhost:9100/metrics | headNettoyer le téléchargement de Node Exporter
rm -rf /tmp/node_exporter-1.12.1.linux-amd64*Partie 3 : pointer Prometheus vers Node Exporter
Étape 1 : ajouter la tâche de collecte
sudo vim /etc/prometheus/prometheus.ymlAjoutez sous scrape_configs :
- job_name: "node_exporter"
static_configs:
- targets: ['localhost:9100']Étape 2 : valider la configuration
promtool check config /etc/prometheus/prometheus.ymlÉtape 3 : recharger Prometheus
sudo systemctl reload prometheusÉtape 4 : vérifier que la cible répond
Ouvrez http://<server-ip>:9090/targets : les tâches prometheus et node_exporter devraient toutes deux afficher State = UP.
Partie 4 : installer Grafana
Méthode officielle : dépôt APT, de sorte que apt-get update garde Grafana à jour. Source : https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/
Étape 1 : installer les prérequis
sudo apt-get install -y apt-transport-https wget gnupgÉtape 2 : importer la clé GPG
sudo mkdir -p /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/grafana.asc https://apt.grafana.com/gpg-full.key
sudo chmod 644 /etc/apt/keyrings/grafana.ascÉtape 3 : ajouter le dépôt stable
echo "deb [signed-by=/etc/apt/keyrings/grafana.asc] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.listÉtape 4 : mettre à jour la liste des paquets
sudo apt-get updateÉtape 5 : installer Grafana OSS
sudo apt-get install -y grafanaÉtape 6 : démarrer et activer Grafana
sudo systemctl daemon-reload
sudo systemctl enable --now grafana-serverÉtape 7 : vérifier
sudo systemctl status grafana-serverOuvrez http://<server-ip>:3000. Les identifiants par défaut sont admin / admin, et il vous sera demandé de les changer à la première connexion.
Partie 5 : configuration Grafana optionnelle (domaine propre / HTTPS)
Utile uniquement si vous placez Grafana derrière un nom de domaine avec TLS.
Étape 1 : modifier grafana.ini
sudo vim /etc/grafana/grafana.ini[server]
http_addr =
http_port = 3000
domain = mysite.com
root_url = https://subdomain.mysite.com:3000
cert_key = /etc/grafana/grafana.key
cert_file = /etc/grafana/grafana.crt
enforce_domain = False
protocol = httpsÉtape 2 : redémarrer Grafana
sudo systemctl restart grafana-serverÉtape 3 (optionnelle) : proxy inverse Nginx
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80;
server_name your_domain www.your_domain;
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
location /api/live {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
}Partie 6 : connecter Grafana à Prometheus
Étape 1 : ajouter la source de données
Dans Grafana : Connections > Data sources > Add data source > Prometheus.
Renseignez l'URL :
http://localhost:9090Cliquez sur Save & test, vous devriez voir "Successfully queried the Prometheus API."
Étape 2 : importer le tableau de bord Node Exporter
Dashboards > New > Import, puis saisissez l'ID du tableau de bord :
1860Sélectionnez votre source de données Prometheus quand on vous le demande, puis cliquez sur Import. C'est le tableau de bord communautaire "Node Exporter Full", et il couvre le processeur, la mémoire, le disque et le réseau d'emblée.
Aide-mémoire de gestion des services
service start status enable
--------------- -------------------- -------------------- -------------------------------
prometheus systemctl start systemctl status systemctl enable prometheus
node_exporter systemctl start systemctl status systemctl enable node_exporter
grafana-server systemctl start systemctl status systemctl enable grafana-serverRecharger les configurations sans interruption :
sudo systemctl reload prometheus
sudo systemctl restart grafana-serverLa suite
Un serveur, c'est le point de départ, pas l'arrivée. Les deux étapes suivantes sont généralement les alertes (Alertmanager, pour qu'un disque plein vous réveille à 3 h du matin au lieu de vous surprendre à 9 h) et un deuxième exporter pour ce que la machine fait réellement tourner. Si cette machine est un site web, auto-héberger WordPress avec Docker et Redis est l'autre moitié du même montage.
La supervision à plus grande échelle représente une bonne part de mon travail : observabilité avec Grafana et Prometheus, y compris un banc d'essai qui a envoyé dix millions de requêtes en quinze minutes. Volontiers pour en parler.
Désinstaller
Supprimer Prometheus
sudo systemctl disable --now prometheus
sudo rm -f /usr/local/bin/prometheus /usr/local/bin/promtool
sudo rm -rf /etc/prometheus /var/lib/prometheus /etc/systemd/system/prometheus.service
sudo userdel prometheus
sudo systemctl daemon-reloadSupprimer Node Exporter
sudo systemctl disable --now node_exporter
sudo rm -f /usr/local/bin/node_exporter /etc/systemd/system/node_exporter.service
sudo userdel node_exporter
sudo systemctl daemon-reloadSupprimer Grafana
sudo systemctl stop grafana-server
sudo apt-get remove -y grafana
sudo rm -i /etc/apt/sources.list.d/grafana.list