Chapitre 1214 minIntermédiaire
Prometheus, Uptime Kuma, Centreon : comparer les outils
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- expliquer le modèle de Prometheus : exportateurs, collecte, PromQL, Alertmanager ;
- installer Uptime Kuma pour une petite structure ;
- situer Centreon, Nagios et les autres outils du marché ;
- justifier le choix d'un outil de supervision devant une commission.
3 exercices corrigés
Zabbix n'est pas le seul outil de supervision : Prometheus (souvent avec Grafana) domine dans les environnements de conteneurs, Uptime Kuma surveille simplement la disponibilité de quelques sites, Centreon et Nagios restent très présents en France, et d'autres outils occupent des niches. Ce chapitre présente le principe de chacun, montre l'installation d'Uptime Kuma pour une petite structure, et donne une méthode pour choisir un outil et justifier ce choix devant une commission.
Prometheus et Grafana
Prometheus est un logiciel libre de collecte et de stockage de métriques, créé en 2012 chez SoundCloud et aujourd'hui projet de la Cloud Native Computing Foundation (version 3 en 2026). Son modèle est différent de celui de Zabbix.
- La collecte par interrogation HTTP. Chaque cible publie ses métriques sur une page web, par convention
http://cible:port/metrics, en texte. Prometheus la lit (scrape) à intervalle régulier. - Les exportateurs (exporters) publient cette page pour ce qui ne la publie pas lui-même :
node_exporterpour un serveur Linux (port 9100),windows_exporterpour Windows,snmp_exporterpour les équipements SNMP,blackbox_exporterpour tester un site ou un port de l'extérieur. Les applications modernes et Kubernetes publient leurs métriques directement. - Des séries temporelles à étiquettes. Chaque mesure a un nom et des étiquettes :
node_filesystem_avail_bytes{instance="192.168.10.179:9100",mountpoint="/"}. - Le langage PromQL interroge et calcule :
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)donne l'utilisation du processeur de chaque machine. - Les alertes sont des règles PromQL évaluées par Prometheus, puis envoyées à un composant séparé, Alertmanager, qui les regroupe, les fait taire pendant une maintenance et les route (courriel, Teams, Slack).
- Pas d'interface de configuration : tout se fait dans des fichiers YAML, et Grafana sert d'interface de consultation.
Un extrait de configuration et une règle d'alerte :
# /etc/prometheus/prometheus.yml
global:
scrape_interval: 30s
rule_files:
- /etc/prometheus/regles-sorbier.yml
scrape_configs:
- job_name: "serveurs-linux"
static_configs:
- targets: ["192.168.10.179:9100", "192.168.10.180:9100"]
# /etc/prometheus/regles-sorbier.yml
groups:
- name: sorbier
rules:
- alert: DisqueBientotPlein
expr: (1 - node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100 > 85
for: 5m
labels:
severity: warning
annotations:
summary: "Disque / de {{ $labels.instance }} rempli à plus de 85 %"
La clause for: 5m joue le rôle du min(…,5m) d'un déclencheur Zabbix : la condition doit rester vraie cinq minutes.
| Zabbix | Prometheus et Grafana | |
|---|---|---|
| Collecte | Agent (passif ou actif), SNMP, HTTP, scripts | Interrogation HTTP de pages /metrics, exportateurs |
| Configuration | Interface web, modèles prêts à l'emploi | Fichiers YAML, souvent gérés comme du code |
| Équipements réseau (SNMP), traps | Natif, modèles par constructeur | snmp_exporter à configurer ; pas de traps sans outil complémentaire |
| Découverte dans des environnements qui changent sans cesse (conteneurs, Kubernetes) | Possible, moins naturelle | Son point fort |
| Alertes | Intégrées, avec escalades et acquittement | Alertmanager, séparé |
| Interface | Complète, cartes, rapports SLA | Grafana |
| Où tu le croises | Infrastructures d'entreprise, collectivités, hébergeurs | Équipes de développement, plateformes de conteneurs, cloud |
Pour une infrastructure de PME faite de serveurs, de switchs et d'un pare-feu, Zabbix demande moins de travail. Pour une plateforme de conteneurs où les instances naissent et meurent chaque heure, Prometheus est mieux adapté. Les deux cohabitent souvent, avec Grafana pour les afficher ensemble.
Uptime Kuma pour une petite structure
Uptime Kuma est un outil libre de surveillance de disponibilité : il teste à intervalle régulier des sites web, des ports, des noms DNS, des machines (ping), et alerte quand l'un d'eux ne répond plus. Il s'installe en un conteneur et se configure entièrement à la souris. La version 2, sortie en octobre 2025 (2.5 en novembre 2026), ajoute notamment la prise en charge de MariaDB pour stocker ses données.
Prends le cas d'un cabinet comptable de douze personnes, client du prestataire où tu fais ton stage : un site vitrine chez un hébergeur, une messagerie en ligne, un NAS au bureau et un accès VPN. Personne n'a le temps d'administrer Zabbix. Uptime Kuma, sur une petite VM ou un serveur hébergé hors du bureau (pour voir le bureau tomber), suffit.
# compose.yaml
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
restart: unless-stopped
volumes:
- ./data:/app/data
ports:
- "3001:3001"
docker compose up -d
docker compose ps
Ouvre http://serveur:3001 : à la première visite, Uptime Kuma demande où stocker ses données (SQLite intégré suffit ici) et crée le compte administrateur. Publie-le ensuite derrière un proxy inverse en HTTPS, et ne laisse pas l'interface ouverte à tout Internet sans protection.
Puis Add New Monitor, un par service :
| Moniteur | Type | Réglages |
|---|---|---|
| Site vitrine | HTTP(s) - Keyword | L'adresse du site, le mot-clé « Cabinet », intervalle 60 s, 2 essais avant alerte, notification d'expiration du certificat |
| Messagerie | HTTP(s) | La page de connexion du webmail |
| VPN du bureau | TCP Port | L'adresse publique du bureau, le port du VPN (ou Ping si le pare-feu répond) |
| NAS | Ping ou TCP Port | Testé par le VPN, ou depuis une sonde au bureau |
| Sauvegarde nocturne | Push | Uptime Kuma fournit une adresse ; le script de sauvegarde l'appelle quand il réussit. Pas d'appel en 25 heures : alerte |
Les notifications (courriel SMTP, Teams, Slack, Telegram, Discord et des dizaines d'autres) se configurent une fois et s'attachent aux moniteurs. Une page de statut publique (Status Pages) montre aux salariés l'état des services, ce qui évite dix appels lors d'une panne de la messagerie en ligne. Les maintenances suspendent les alertes pendant une intervention.
Le moniteur Push sert aussi chez Sorbier, de signal de vie de Zabbix (chapitre 9) : une tâche planifiée sur srv-journaux appelle chaque minute l'adresse de push d'une instance d'Uptime Kuma hébergée hors du siège, si et seulement si le serveur Zabbix tourne.
# /etc/cron.d/signal-de-vie-zabbix
* * * * * root systemctl is-active --quiet zabbix-server && curl -fsS -m 10 "https://statut.sorbier.example/api/push/Xk29fJq7La?status=up&msg=OK" >/dev/null
| Uptime Kuma | Zabbix | |
|---|---|---|
| Question | « Est-ce que ça répond ? » | « Est-ce que ça répond, pourquoi pas, et comment ça évolue ? » |
| Mesures internes (disque, mémoire, services, SNMP) | Non | Oui |
| Installation | Un conteneur, cinq minutes | Une base, un serveur, des agents |
| Historique et métrologie | Temps de réponse et disponibilité | Toutes les mesures, tendances, prévisions |
| Idéal pour | Petite structure, surveillance externe, page de statut | Infrastructure d'entreprise |
Centreon et Nagios
Nagios Core (1999) a fixé une convention que tout le métier connaît : un greffon (plugin) est un petit programme qui teste une chose et répond par un code de retour :
| Code | État | Sens |
|---|---|---|
| 0 | OK | Tout va bien |
| 1 | WARNING | Seuil d'avertissement dépassé |
| 2 | CRITICAL | Seuil critique dépassé ou service en panne |
| 3 | UNKNOWN | Le test n'a pas pu être fait |
Par exemple, check_disk -w 20% -c 10% -p / répond WARNING s'il reste moins de 20 % d'espace libre sur /, CRITICAL sous 10 %. Le moteur planifie les tests, garde l'état de chaque service, et notifie. Pour tester l'intérieur d'une machine distante, Nagios s'appuyait sur l'agent NRPE. La configuration se fait dans des fichiers texte (hôtes, services, contacts, commandes), ce qui la rend fastidieuse sur un grand parc. Un problème passe d'abord par un état SOFT (le test est refait quelques fois) avant de devenir HARD et d'être notifié : c'est l'équivalent des tentatives et des durées de Zabbix.
Centreon, éditeur français, est né comme une interface web pour Nagios ; il a ensuite développé son propre moteur, compatible avec les greffons de type Nagios, et une très large bibliothèque de greffons et de modèles. Il existe une édition libre et des éditions commerciales. On le rencontre beaucoup dans les administrations, les collectivités et les grandes entreprises françaises, et dans des offres d'alternance : si ton entreprise l'utilise, tout ce cours se transpose (hôtes, modèles, seuils, notifications, dépendances, maintenances).
D'autres outils : Icinga et Checkmk, issus de Nagios ; LibreNMS, centré sur les équipements réseau en SNMP, avec une découverte automatique très efficace ; PRTG, commercial, très simple à prendre en main sous Windows, facturé au nombre de « capteurs » ; Netdata, qui montre en direct des milliers de métriques par machine.
Choisir et justifier
À l'E6 comme en entreprise, on ne choisit pas un outil parce qu'on le connaît : on compare des solutions selon des critères issus du besoin, puis on justifie. Une matrice de choix pondérée rend le raisonnement visible.
Pour Sorbier (environ 60 hôtes, des switchs Cisco, pfSense, Windows et Linux, une agence distante, un budget limité, une petite équipe) :
| Critère | Poids | Zabbix | Centreon | Uptime Kuma | Prometheus et Grafana |
|---|---|---|---|---|---|
| Coût (licences) | 3 | 5 | 4 | 5 | 5 |
| Couverture (agents Windows et Linux, SNMP, traps, site distant) | 3 | 5 | 5 | 1 | 3 |
| Alertes (escalades, acquittement, maintenances) | 2 | 5 | 4 | 4 | 4 |
| Prise en main par l'équipe | 2 | 3 | 3 | 5 | 2 |
| Documentation et communauté | 2 | 5 | 4 | 3 | 4 |
| Total (sur 60) | 56 | 49 | 42 | 44 |
Le calcul : pour Zabbix, 3 × 5 + 3 × 5 + 2 × 5 + 2 × 3 + 2 × 5 = 56. Les notes de 1 à 5 se discutent, et c'est le but : la matrice t'oblige à dire pourquoi. Uptime Kuma perd sur la couverture (pas de mesures internes), Prometheus sur la couverture réseau et la prise en main, Centreon reste un bon second choix.
Exercices
Exercice 1 sur 3 Quel outil pour quel contexte ? Réussi À revoir
Propose un outil pour chaque contexte, en une phrase de justification.
- Une association avec un site web et une messagerie en ligne, sans serveur au local.
- Une start-up dont l'application tourne dans des conteneurs sur un cluster Kubernetes, avec des déploiements plusieurs fois par jour.
- Une communauté de communes : 400 hôtes, 40 sites reliés, des équipements réseau de trois constructeurs, une équipe de cinq techniciens.
- Un prestataire qui veut montrer à ses clients une page publique de l'état de leurs services.
Voir la réponseMasquer la réponse de l'exercice 1
- Uptime Kuma (ou un service en ligne équivalent), hébergé hors de l'association : il n'y a que des services externes à tester, aucune mesure interne n'est nécessaire.
- Prometheus et Grafana : les applications et Kubernetes publient leurs métriques au format de Prometheus, et sa découverte suit les conteneurs qui apparaissent et disparaissent.
- Zabbix ou Centreon : beaucoup d'hôtes, des sites distants (proxys ou pollers par site), du SNMP multi-constructeur, des escalades. Le choix entre les deux dépendra des compétences de l'équipe et du support souhaité.
- Uptime Kuma et ses pages de statut (une par client), éventuellement en plus de la supervision interne : la page de statut est un outil de communication, pas de diagnostic.
Tu avais trouvé ?
Exercice 2 sur 3 Traduire un déclencheur Réussi À revoir
Voici une règle d'alerte Prometheus :
- alert: ServeurInjoignable
expr: up{job="serveurs-linux"} == 0
for: 3m
- Que signifie-t-elle ? (
upvaut 1 quand Prometheus a réussi à lire la page/metricsde la cible, 0 sinon.) - Écris un déclencheur Zabbix équivalent pour srv-gestion, en contrôle passif.
Voir la réponseMasquer la réponse de l'exercice 2
- L'alerte se déclenche quand une cible du groupe
serveurs-linuxn'a pas pu être lue pendant 3 minutes d'affilée : la machine, le réseau ou l'exportateur ne répond plus. - Par exemple
max(/srv-gestion/zabbix[host,agent,available],3m)=0(la disponibilité de l'agent, qu'utilise le modèleLinux by Zabbix agent), ounodata(/srv-gestion/agent.ping,3m)=1. Les deux traduisent « pas de réponse de l'agent pendant 3 minutes ».
Tu avais trouvé ?
Exercice 3 sur 3 Les codes de retour Réussi À revoir
Un script de supervision de type Nagios teste le nombre de jours avant l'expiration d'un certificat, avec un avertissement à 30 jours et un seuil critique à 7 jours. Quel code renvoie-t-il dans chaque cas ?
- Il reste 45 jours.
- Il reste 12 jours.
- Le certificat a expiré hier.
- Le site ne répond pas, le certificat ne peut pas être lu.
Voir la réponseMasquer la réponse de l'exercice 3
- 0 (OK) : au-dessus des deux seuils.
- 1 (WARNING) : moins de 30 jours, plus de 7.
- 2 (CRITICAL) : moins de 7 jours, et même expiré.
- 3 (UNKNOWN) : le test n'a pas pu se faire. Certains greffons répondent CRITICAL dans ce cas ; l'important est de ne jamais répondre OK quand on ne sait pas. Il faut un test distinct de la disponibilité du site.
Tu avais trouvé ?