Skip to main content

Mise en place de prometheus

Mise en place de Prometheus pour la supervision

Ce guide explique comment installer et configurer Prometheus sur une machine dédiée (VM ou LXC), afin de collecter les métriques d'autres machines (VPS, Proxmox, etc.) via des agents comme node_exporter.

Vous pouvez aussi utilisé Helper-Script pour l'installation :
Prometheus PVE Exporter : https://community-scripts.github.io/ProxmoxVE/scripts?id=prometheus-pve-exporter
Prometheus : https://community-scripts.github.io/ProxmoxVE/scripts?id=prometheus

✨ Objectif

Mettre en place un serveur Prometheus pour collecter des métriques depuis plusieurs machines :

  • VPS avec node_exporter
  • Proxmox exporter (exporteur dédié pour Proxmox VE)
  • Machines locales avec node_exporter

🌐 Prérequis
  • Une VM ou LXC dédiée à Prometheus (Debian/Ubuntu recommandé)
  • Accès root ou sudo

🛠️ Installation de Prometheus

1. Mise à jour et création d'utilisateur

sudo apt update && sudo apt install -y curl tar
sudo useradd --no-create-home --shell /bin/false prometheus

2. Téléchargement

cd /tmp
curl -LO https://github.com/prometheus/prometheus/releases/latest/download/prometheus-2.52.0.linux-amd64.tar.gz
tar xvf prometheus-2.52.0.linux-amd64.tar.gz
cd prometheus-2.52.0.linux-amd64

Si la commande curl -LO ne fonctionne pas, utilisé wget

3. Déplacement des fichiers

sudo mkdir -p /etc/prometheus /var/lib/prometheus
sudo cp prometheus promtool /usr/local/bin/
sudo cp -r consoles/ console_libraries/ /etc/prometheus/
sudo cp prometheus.yml /etc/prometheus/

4. Droits

sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
sudo chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtool

🔧 Création du 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/

[Install]
WantedBy=multi-user.target
EOF

🖊️ Configuration de /etc/prometheus/prometheus.yml

Voici un exemple valide pour plusieurs machines :

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'nom_de_la_machine'
    static_configs:
      - targets: ['IP_DE_VOTRE_MACHINE:9090']

  - job_name: 'nom_de_la_machine'
    static_configs:
      - targets: ['IP_DE_VOTRE_MACHINE:9221']

  - job_name: 'nom_de_la_machine'
    static_configs:
      - targets: ['IP_DE_VOTRE_MACHINE:9100']

  - job_name: 'nom_de_la_machine'
    static_configs:
      - targets: ['IP_DE_VOTRE_MACHINE:9100']

🚀 Lancement de Prometheus

1. Activer le service

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable --now prometheus

2. Vérification

systemctl status prometheus

3. Interface Web

Accédez à :

http://IP_DU_SERVEUR_PROMETHEUS:9090

Puis allez dans : Status > Targets

Vous devez voir toutes les cibles listées comme UP.


🌍 Connexion à Grafana
  1. Sur Grafana (VM différente), aller dans Configuration > Data Sources
  2. Cliquer sur Add Data Source > choisir Prometheus
  3. Mettre comme URL : http://IP_DU_SERVEUR_PROMETHEUS:9090
  4. Cliquer sur Save & Test

📄 Notes utiles
  • Le fichier prometheus.yml doit avoir une seule section scrape_configs:
  • Chaque job_name correspond à une cible identifiée dans Grafana
  • Si le service ne démarre pas, vérifiez les erreurs YAML :
/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml
  • Exemple d'erreur courante :
yaml: unmarshal errors: field scrape_configs already set

=> Ça signifie que scrape_configs: est déclaré deux fois


🎉 Prometheus est maintenant prêt à collecter des métriques sur tous vos serveurs ✅