L'essentiel
- La stack repose sur quatre briques et quatre ports : Prometheus (9090) qui va lui-même chercher les métriques en HTTP sur l'endpoint
/metricsde chaque cible (modèle pull), node_exporter (9100) qui expose les métriques système, Grafana (3000) pour la visualisation et Alertmanager (9093) qui déduplique, groupe et route les alertes. - Validez toujours avant de redémarrer :
promtool check config /etc/prometheus/prometheus.yml,promtool check rulespour les alertes etamtool check-configcôté Alertmanager. Avec le flag--web.enable-lifecycle, un simplecurl -X POST http://localhost:9090/-/reloadrecharge la configuration à chaud sans interrompre la collecte. - Trois requêtes PromQL couvrent l'essentiel : CPU
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100), mémoire(1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100et latencehistogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))—rate()ne s'applique qu'aux compteurs. Dans Grafana, importer le dashboard Node Exporter Full (ID 1860) donne ces vues sans écrire une seule requête. - Une règle d'alerte ne vaut que par son
for:, qui filtre les pics passagers :up == 0pendant 2 min pour une instance morte, CPU > 85 % pendant 5 min, disque > 85 % pendant 10 min. Côté Alertmanager,group_wait: 30s,group_interval: 5metrepeat_interval: 4h(1 h pour le critique) contiennent le bruit, et lesinhibit_rulestaisent les warnings dès qu'une alerte critique porte sur le même couple alertname/instance. - N'exposez jamais les ports 9090, 9100 et 9093 sur Internet. Prometheus gère l'authentification basique nativement depuis la version 2.24 via
--web.config.fileet un hash bcrypt généré parhtpasswd -nBC 10; sinon, placez-le derrière un reverse proxy Nginx en TLS. Côté Grafana, changez leadmin/adminpar défaut et positionnezallow_sign_up = false.
Ce tutoriel couvre le déploiement complet d'une stack de monitoring avec Prometheus pour la collecte de métriques, Grafana pour la visualisation, Node Exporter pour les métriques système et Alertmanager pour les notifications. À la fin de ce guide, vous disposerez d'une infrastructure de monitoring fonctionnelle capable de surveiller vos serveurs et de vous alerter en cas de problème.
Prérequis
- Système d'exploitation : Debian 12+ ou Ubuntu 22.04+ (les commandes sont adaptables à CentOS/RHEL)
- Privilèges : Accès root ou sudo sur le serveur de monitoring
- Ressources : Minimum 2 Go de RAM et 20 Go d'espace disque (adapter selon le nombre de cibles)
- Réseau : Ports 9090 (Prometheus), 9100 (Node Exporter), 3000 (Grafana), 9093 (Alertmanager) accessibles
- Connaissances : Bases en administration Linux et en gestion de services systemd
Architecture de la stack
Prometheus fonctionne sur un modèle pull : c'est le serveur Prometheus qui interroge périodiquement les cibles pour récupérer leurs métriques. Ce modèle présente plusieurs avantages par rapport au push (type StatsD/Graphite) :
- Prometheus : Serveur central qui collecte (scrape) les métriques via HTTP, les stocke localement sous forme de séries temporelles et évalue les règles d'alerte
- Exporters : Agents légers qui exposent des métriques au format Prometheus sur un endpoint
/metrics. Le plus courant estnode_exporterpour les métriques système - Grafana : Interface de visualisation qui se connecte à Prometheus comme source de données pour créer des dashboards interactifs
- Alertmanager : Composant qui reçoit les alertes déclenchées par Prometheus, les déduplique, les groupe et les route vers les bons destinataires (email, Slack, PagerDuty)
+------------------+ +-------------------+ +------------------+
| Node Exporter | <---- | Prometheus | ----> | Alertmanager |
| (port 9100) | | (port 9090) | | (port 9093) |
+------------------+ +-------------------+ +------------------+
|
v
+-------------------+
| Grafana |
| (port 3000) |
+-------------------+
Contenu Premium
Ce tutoriel avancé est réservé aux membres premium.
- Tous les tutoriels avancés
- Nouveaux contenus chaque semaine
- Suivi de progression
- Annulation à tout moment