4.1 Installation de Prometheus
Prometheus — c'est un système puissant de monitoring et d'alertes Open Source, conçu pour collecter et stocker des métriques à partir de différentes sources, y compris les conteneurs Docker. Dans cette conférence, on va voir en détail comment configurer le monitoring des conteneurs avec Prometheus, en incluant l'installation, la configuration de la collecte des métriques et l'intégration avec Docker.
1. Télécharger et installer Prometheus
D'abord, télécharge la dernière version de Prometheus depuis le site officiel :
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
Décompresse l'archive :
tar xvfz prometheus-*.tar.gz
cd prometheus-*
Déplace les fichiers binaires vers /usr/local/bin
:
sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
4.2 Configuration du fichier de configuration Prometheus
Prometheus utilise un fichier de configuration prometheus.yml
pour définir les sources des métriques et les paramètres de collecte des données. Crée ou modifie le fichier prometheus.yml
:
global:
scrape_interval: 15s # Intervalle de collecte des métriques
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'cadvisor'
static_configs:
- targets: ['localhost:8080']
Ce fichier de configuration inclut deux jobs :
prometheus
: pour collecter les métriques de Prometheus lui-même.cadvisor
: pour collecter les métriques de cAdvisor, qui sera utilisé pour monitorer les conteneurs Docker.
5.3 Lancement de Prometheus
Lance Prometheus en utilisant le fichier de configuration que tu as créé :
prometheus --config.file=prometheus.yml
Prometheus sera accessible à l'adresse suivante : http://localhost:9090.
5.4 Installation et configuration de cAdvisor
cAdvisor
(Container Advisor) — est un outil pour surveiller les conteneurs, qui collecte et fournit des métriques pour les conteneurs Docker. Pour l'utiliser, suis les étapes suivantes :
Lance cAdvisor
dans un conteneur Docker :
docker run -d \
--name=cadvisor \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--privileged \
gcr.io/cadvisor/cadvisor:latest
cAdvisor
sera accessible à http://localhost:8080.
5.5 Mise à jour de la configuration de Prometheus pour cAdvisor
Assure-toi que la configuration de Prometheus inclut une tâche pour cAdvisor. Un exemple de configuration a été présenté plus haut.
Redémarre Prometheus pour appliquer les changements :
prometheus --config.file=prometheus.yml
5.6 Vérification de la collecte des métriques
Va dans l'interface web de Prometheus à l'adresse http://localhost:9090 et assure-toi que Prometheus collecte bien les métriques de cAdvisor. Pour ça, exécute une requête dans Prometheus :
container_cpu_usage_seconds_total
Tu devrais voir les données collectées à partir des conteneurs Docker.
5.7 Ajout de métriques supplémentaires
Tu peux ajouter des métriques supplémentaires dans le fichier de configuration de Prometheus pour collecter plus de données sur tes conteneurs. Exemple de métriques supplémentaires :
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
Pour cela, il faudra installer node_exporter
, qui fournit des métriques sur l'état du système hôte.
Télécharge et installe node_exporter
:
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo mv node_exporter-1.2.2.linux-amd64/node_exporter /usr/local/bin/
Lance node_exporter :
node_exporter &
Maintenant, node_exporter
sera accessible à http://localhost:9100.
5.8 Création de règles d'alerte
Prometheus permet de créer des règles d'alerte pour notifier les admins en cas de problèmes. Ajoute des règles d'alerte dans le fichier de configuration prometheus.yml
:
rule_files:
- "alert.rules"
alerting:
alertmanagers:
- static_configs:
- targets:
- "localhost:9093"
Crée un fichier alert.rules
avec un exemple de règles :
groups:
- name: exemple
rules:
- alert: HighCPUUsage
expr: container_cpu_usage_seconds_total{job="cadvisor"} > 0.85
for: 1m
labels:
severity: warning
annotations:
summary: "Utilisation élevée du CPU détectée"
description: "Le conteneur utilise plus de 85% du CPU pendant plus d'une minute."
GO TO FULL VERSION