Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Prometheus - Grafana - Node Exporter » : différence entre les versions

De EC_Wiki
Aucun résumé des modifications
Aucun résumé des modifications
 
Ligne 1 : Ligne 1 :
== 🧩 Installation complète : Prometheus + Node Exporter + Grafana ==
= 🧩 Installation complète : Prometheus + Node Exporter + Grafana =


=== 1. Installation de Prometheus ===
== 1. Installation de Prometheus ==
===== 1.1 Télécharger Prometheus =====
===== 1.1 Télécharger Prometheus =====
  bash:
  bash:
Ligne 9 : Ligne 9 :
  sudo mv prometheus-*/ prometheus
  sudo mv prometheus-*/ prometheus


==== 1.2 Créer l’utilisateur système ====
===== 1.2 Créer l’utilisateur système =====
  bash:
  bash:
  sudo useradd --no-create-home --shell /usr/sbin/nologin prometheus
  sudo useradd --no-create-home --shell /usr/sbin/nologin prometheus


==== 1.3 Déplacer les binaires ====
===== 1.3 Déplacer les binaires =====
  bash:
  bash:
  sudo mv /opt/prometheus/prometheus /usr/local/bin/
  sudo mv /opt/prometheus/prometheus /usr/local/bin/
  sudo mv /opt/prometheus/promtool /usr/local/bin/
  sudo mv /opt/prometheus/promtool /usr/local/bin/


==== 1.4 Créer les dossiers ====
===== 1.4 Créer les dossiers =====
  bash:
  bash:
  sudo mkdir /etc/prometheus
  sudo mkdir /etc/prometheus
  sudo mkdir /var/lib/prometheus
  sudo mkdir /var/lib/prometheus


==== 1.5 Déplacer les fichiers de configuration ====
===== 1.5 Déplacer les fichiers de configuration =====
  bash:
  bash:
  sudo mv /opt/prometheus/consoles /etc/prometheus/
  sudo mv /opt/prometheus/consoles /etc/prometheus/
Ligne 29 : Ligne 29 :
  sudo mv /opt/prometheus/prometheus.yml /etc/prometheus/
  sudo mv /opt/prometheus/prometheus.yml /etc/prometheus/


==== 1.6 Permissions ====
===== 1.6 Permissions =====
  bash:
  bash:
  sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
  sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus


==== 1.7 Service systemd Prometheus ====
===== 1.7 Service systemd Prometheus =====
/etc/systemd/system/prometheus.service :
/etc/systemd/system/prometheus.service :
  ini:
  ini:
Ligne 53 : Ligne 53 :
  WantedBy=multi-user.target
  WantedBy=multi-user.target


==== 1.8 Activer & démarrer ====
===== 1.8 Activer & démarrer =====
  bash:
  bash:
  sudo systemctl daemon-reload
  sudo systemctl daemon-reload
  sudo systemctl enable --now prometheus
  sudo systemctl enable --now prometheus


=== 2. Installation de Node Exporter ===
== 2. Installation de Node Exporter ==
==== 2.1 Télécharger ====
==== 2.1 Télécharger ====
  bash:
  bash:
Ligne 66 : Ligne 66 :
  sudo mv node_exporter-*/ node_exporter
  sudo mv node_exporter-*/ node_exporter


==== 2.2 Créer utilisateur ====
===== 2.2 Créer utilisateur =====
  bash:
  bash:
  sudo useradd --no-create-home --shell /usr/sbin/nologin nodeusr
  sudo useradd --no-create-home --shell /usr/sbin/nologin nodeusr


==== 2.3 Déplacer le binaire ====
===== 2.3 Déplacer le binaire =====
  bash:
  bash:
  sudo mv /opt/node_exporter/node_exporter /usr/local/bin/
  sudo mv /opt/node_exporter/node_exporter /usr/local/bin/
  sudo chown nodeusr:nodeusr /usr/local/bin/node_exporter
  sudo chown nodeusr:nodeusr /usr/local/bin/node_exporter


==== 2.4 Service systemd Node Exporter ====
===== 2.4 Service systemd Node Exporter =====
/etc/systemd/system/node_exporter.service :
/etc/systemd/system/node_exporter.service :
  ini:
  ini:
Ligne 91 : Ligne 91 :
  WantedBy=multi-user.target
  WantedBy=multi-user.target


==== 2.5 Activer & démarrer ====
===== 2.5 Activer & démarrer =====
  bash:
  bash:
  sudo systemctl daemon-reload
  sudo systemctl daemon-reload
  sudo systemctl enable --now node_exporter
  sudo systemctl enable --now node_exporter


=== 3. Installation de Grafana ===
== 3. Installation de Grafana ==
==== 3.1 Dépôt officiel ====
===== 3.1 Dépôt officiel =====
  bash:
  bash:
  sudo apt-get install -y apt-transport-https software-properties-common wget
  sudo apt-get install -y apt-transport-https software-properties-common wget
Ligne 105 : Ligne 105 :
  sudo apt install grafana
  sudo apt install grafana


==== 3.2 Activer & démarrer ====
===== 3.2 Activer & démarrer =====
  bash:
  bash:
  sudo systemctl enable --now grafana-server
  sudo systemctl enable --now grafana-server


=== 4. Reverse Proxy NGINX (Prometheus, Grafana, Node Exporter) ===
== 4. Reverse Proxy NGINX (Prometheus, Grafana, Node Exporter) ==
==== 4.1 Prometheus (/prometheus/) ====
===== 4.1 Prometheus (/prometheus/) =====
  code nginx:  
  code nginx:  
  location = /prometheus {
  location = /prometheus {
Ligne 125 : Ligne 125 :
  }
  }


=== 4.2 Grafana (/grafana/) ===
===== 4.2 Grafana (/grafana/) =====


⚠️ Pas de slash final dans proxy_pass   
⚠️ Pas de slash final dans proxy_pass   
Ligne 150 : Ligne 150 :
  }
  }


=== 4.3 Node Exporter (/metrics/) ===
===== 4.3 Node Exporter (/metrics/) =====
  code nginx:
  code nginx:
  location /metrics/ {
  location /metrics/ {
Ligne 159 : Ligne 159 :
  }
  }


=== 5. Vérifications finales ===
== 5. Vérifications finales ==
==== 5.1 Services ====
===== 5.1 Services =====
  bash:  
  bash:  
  systemctl status prometheus
  systemctl status prometheus
Ligne 166 : Ligne 166 :
  systemctl status grafana-server
  systemctl status grafana-server


==== 5.2 Ports ====
===== 5.2 Ports =====
  bash:
  bash:
  ss -ltnp | grep -E "9090|9100|3000"
  ss -ltnp | grep -E "9090|9100|3000"


==== 5.3 Reverse proxy ====
===== 5.3 Reverse proxy =====
  bash:
  bash:
  curl -I https://IP/prometheus/ --insecure
  curl -I https://IP/prometheus/ --insecure
Ligne 176 : Ligne 176 :
  curl -I https://IP/metrics/ --insecure
  curl -I https://IP/metrics/ --insecure


=== 6. Pièges à éviter (résumés) ===
== 6. Pièges à éviter (résumés) ==


*    ❌ Ne jamais mettre de .save ou .bak dans sites-enabled
*    ❌ Ne jamais mettre de .save ou .bak dans sites-enabled

Dernière version du 23 décembre 2025 à 16:26

🧩 Installation complète : Prometheus + Node Exporter + Grafana modifier

1. Installation de Prometheus modifier

1.1 Télécharger Prometheus modifier
bash:
cd /opt
sudo wget https://github.com/prometheus/prometheus/releases/latest/download/prometheus-linux-amd64.tar.gz
sudo tar -xzf prometheus-linux-amd64.tar.gz
sudo mv prometheus-*/ prometheus
1.2 Créer l’utilisateur système modifier
bash:
sudo useradd --no-create-home --shell /usr/sbin/nologin prometheus
1.3 Déplacer les binaires modifier
bash:
sudo mv /opt/prometheus/prometheus /usr/local/bin/
sudo mv /opt/prometheus/promtool /usr/local/bin/
1.4 Créer les dossiers modifier
bash:
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
1.5 Déplacer les fichiers de configuration modifier
bash:
sudo mv /opt/prometheus/consoles /etc/prometheus/
sudo mv /opt/prometheus/console_libraries /etc/prometheus/
sudo mv /opt/prometheus/prometheus.yml /etc/prometheus/
1.6 Permissions modifier
bash:
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
1.7 Service systemd Prometheus modifier

/etc/systemd/system/prometheus.service :

ini:
[Unit]
Description=Prometheus Monitoring
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.listen-address=0.0.0.0:9090

[Install]
WantedBy=multi-user.target
1.8 Activer & démarrer modifier
bash:
sudo systemctl daemon-reload
sudo systemctl enable --now prometheus

2. Installation de Node Exporter modifier

2.1 Télécharger modifier

bash:
cd /opt
sudo wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-linux-amd64.tar.gz
sudo tar -xzf node_exporter-linux-amd64.tar.gz
sudo mv node_exporter-*/ node_exporter
2.2 Créer utilisateur modifier
bash:
sudo useradd --no-create-home --shell /usr/sbin/nologin nodeusr
2.3 Déplacer le binaire modifier
bash:
sudo mv /opt/node_exporter/node_exporter /usr/local/bin/
sudo chown nodeusr:nodeusr /usr/local/bin/node_exporter
2.4 Service systemd Node Exporter modifier

/etc/systemd/system/node_exporter.service :

ini:
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=nodeusr
Group=nodeusr
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target
2.5 Activer & démarrer modifier
bash:
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter

3. Installation de Grafana modifier

3.1 Dépôt officiel modifier
bash:
sudo apt-get install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install grafana
3.2 Activer & démarrer modifier
bash:
sudo systemctl enable --now grafana-server

4. Reverse Proxy NGINX (Prometheus, Grafana, Node Exporter) modifier

4.1 Prometheus (/prometheus/) modifier
code nginx: 
location = /prometheus {
   return 301 /prometheus/;
}

location ^~ /prometheus/ {
   proxy_pass http://127.0.0.1:9090/;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_redirect off;
}
4.2 Grafana (/grafana/) modifier

⚠️ Pas de slash final dans proxy_pass ⚠️ root_url doit être configuré /etc/grafana/grafana.ini

ini:
[server]
root_url = %(protocol)s://%(domain)s/grafana/
serve_from_sub_path = true

NGINX : modifier

code nginx:
location = /grafana {
   return 301 /grafana/;
}

location ^~ /grafana/ {
   proxy_pass http://127.0.0.1:3000;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_redirect off;
}
4.3 Node Exporter (/metrics/) modifier
code nginx:
location /metrics/ {
   proxy_pass http://127.0.0.1:9100/metrics;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_redirect off;
}

5. Vérifications finales modifier

5.1 Services modifier
bash: 
systemctl status prometheus
systemctl status node_exporter
systemctl status grafana-server
5.2 Ports modifier
bash:
ss -ltnp | grep -E "9090|9100|3000"
5.3 Reverse proxy modifier
bash:
curl -I https://IP/prometheus/ --insecure
curl -I https://IP/grafana/ --insecure
curl -I https://IP/metrics/ --insecure

6. Pièges à éviter (résumés) modifier

  • ❌ Ne jamais mettre de .save ou .bak dans sites-enabled
  • ❌ Ne jamais oublier le / final pour Prometheus & Node Exporter
  • ❌ Ne jamais mettre de / final pour Grafana
  • ❌ Toujours rediriger /app → /app/
  • ❌ Toujours utiliser ^~ /app/ pour éviter les conflits
  • ❌ Toujours configurer root_url pour Grafana