This commit is contained in:
Elvire 2025-10-24 13:02:15 +00:00
parent 890a2fa1a3
commit 6604b6d123

View File

@ -1,21 +1,30 @@
1⃣ Objectif Étape 1 : Installer Apache sur la machine à superviser
Métriques Apache → récupérées via Apache Exporter → Prometheus → Grafana.
Logs Apache → récupérés via Promtail → Loki → Grafana.
Vue complète dans Grafana avec métriques + logs.
2⃣ Sur la VM qui héberge Apache (la VM à superviser) Pour vérifier si Apache est déjà installé :
dpkg -l | grep apache2
2.1 Installer Apache Exporter
Télécharger lexporter et le rendre exécutable :
Si la commande retourne un numéro de version, Apache est déjà installé. Sinon :
Sur Ubuntu/Debian :
sudo apt update
sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl status apache2
Étape 2 : Installer le module de métriques pour Prometheus
Prometheus ne peut pas lire directement les métriques Apache. On utilise apache_exporter.
2.1 Télécharger apache_exporter
cd /opt cd /opt
wget https://github.com/Lusitaniae/apache_exporter/releases/download/v1.0.10/apache_exporter-1.0.10.linux-amd64.tar.gz sudo wget https://github.com/Lusitaniae/apache_exporter/releases/download/v1.0.10/apache_exporter-1.0.10.linux-amd64.tar.gz
tar -xvf apache_exporter-1.0.10.linux-amd64.tar.gz sudo tar -xvf apache_exporter-1.0.10.linux-amd64.tar.gz
sudo mv apache_exporter-1.0.10.linux-amd64/apache_exporter /usr/local/bin/ sudo mv apache_exporter-1.0.10.linux-amd64/apache_exporter /usr/local/bin/
Créer un service systemd pour Apache Exporter : 2.2 Créer un service systemd pour apache_exporter
*** sudo nano /etc/systemd/system/apache_exporter.service
sudo tee /etc/systemd/system/apache_exporter.service <<EOF
[Unit] [Unit]
Description=Prometheus Apache Exporter Description=Prometheus Apache Exporter
After=network.target After=network.target
@ -26,34 +35,38 @@ ExecStart=/usr/local/bin/apache_exporter --scrape_uri="http://localhost/server-s
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF
*** 2.3 Activer le module status dApache
Activer et démarrer le service : sudo a2enmod status
sudo systemctl restart apache2
2.4 Démarrer apache_exporter
sudo systemctl daemon-reload sudo systemctl daemon-reload
sudo systemctl enable --now apache_exporter sudo systemctl enable apache_exporter
sudo systemctl start apache_exporter
sudo systemctl status apache_exporter sudo systemctl status apache_exporter
Vérifier le endpoint des métriques : ✅ À ce stade, Prometheus pourra scrapper les métriques Apache sur le port par défaut 9117 :
curl http://localhost:9117/metrics
2.2 Configurer Promtail pour les logs Apache http://<IP_MACHINE2>:9117/metrics//vérifier ça sur le site prometheus
Étape 4 : Collecter les logs Apache via Loki + Promtail
4.1 Installer Promtail sur la machine supervisée
Si Promtail nest pas encore installé, tu peux le télécharger depuis Grafana :
cd /opt cd /opt
wget https://github.com/grafana/loki/releases/latest/download/promtail-linux-amd64.zip sudo wget https://github.com/grafana/loki/releases/download/v2.9.0/promtail-linux-amd64.zip
unzip promtail-linux-amd64.zip sudo unzip promtail-linux-amd64.zip
sudo mv promtail-linux-amd64 /usr/local/bin/promtail sudo mv promtail-linux-amd64 /usr/local/bin/promtail
sudo chmod +x /usr/local/bin/promtail sudo chmod +x /usr/local/bin/promtail
Vérifie que Promtail est bien accessible : 4.2 Créer un fichier de config pour Promtail
which promtail sudo nano /etc/promtail-config.yaml
promtail --version
Créer le répertoire de config :
sudo mkdir -p /etc/promtail
sudo nano /etc/promtail/promtail-config.yml
Exemple de configuration pour séparer access et error logs : Exemple pour Apache :
**
server: server:
http_listen_port: 9080 http_listen_port: 9080
grpc_listen_port: 0 grpc_listen_port: 0
@ -81,12 +94,9 @@ scrape_configs:
host: apache_vm host: apache_vm
__path__: /var/log/apache2/error.log __path__: /var/log/apache2/error.log
***** 4.3 Créer un service systemd pour Promtail
Remplace <IP_VM_SUPERVISION> par lIP de la VM où tourne Loki. sudo nano /etc/systemd/system/promtail.service
****
Créer le service systemd pour Promtail :
***
sudo tee /etc/systemd/system/promtail.service <<EOF
[Unit] [Unit]
Description=Promtail service for Apache logs Description=Promtail service for Apache logs
After=network.target After=network.target
@ -98,30 +108,9 @@ Restart=always
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF
****
Activer et démarrer Promtail :
**
sudo systemctl daemon-reload
sudo systemctl enable --now promtail
sudo systemctl status promtail
**
Générer une erreur pour tester :
curl http://localhost/page-inexistante
Vérifier error.log :
tail -f /var/log/apache2/error.log
4⃣ Dans Grafana sudo systemctl daemon-reload
Ajouter Prometheus comme datasource (port 9090). sudo systemctl enable promtail
Ajouter Loki comme datasource (port 3100). sudo systemctl start promtail
Créer un dashboard avec : sudo systemctl status promtail
**
Métriques Apache : requêtes, connexions, status codes depuis Prometheus.
**
Logs Apache :
job="apache_access" → access logs
job="apache_error" → error logs
**
Tester :
Faire une requête curl http://vmApache/page-inexistante → devrait apparaître dans apache_error.
Vérifier les logs et métriques dans Grafana.