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
- Sur Grafana (VM différente), aller dans Configuration > Data Sources
- Cliquer sur Add Data Source > choisir Prometheus
- Mettre comme URL :
http://IP_DU_SERVEUR_PROMETHEUS:9090
- Cliquer sur Save & Test
📄 Notes utiles
- Le fichier
prometheus.yml
doit avoir une seule sectionscrape_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 ✅
No Comments