supervision : les huit derniers roles, et deux defauts que l epreuve a trouves
Les 33 roles serveur_* declarent maintenant une sonde. Les huit qui manquaient
sont ceux dont la verite ne ressemble pas a « ce service repond-il ».
Quatre marqueurs du site : ce que tasks/main.yml verifie UNE FOIS au deploiement
cesse d etre vrai sans que rien ne tombe. La racine du cache se retrouve chainee,
la forge du genome repond en n ayant plus rien dedans, un locataire n est plus
admis a resoudre, l isolation d un depot glisse.
serveur_ops_site ne sert rien : il detient un pouvoir. La sonde verifie que la
carte est la, que la voute du site est chiffree et que sa cle est en 0600 — sans
lire le contenu d aucun des trois.
serveur_icingaweb2 surveille la vitrine de la supervision elle-meme : si la
console meurt, tout reste vert et l exploitant est aveugle.
DEFAUT 1 — quatre gabarits qu Ansible aurait refuse de rendre. Jinja lit le
{# de ${#tableau[@]} comme un debut de commentaire. Le depot connaissait le
remede et l appliquait la ou quelqu un s etait fait prendre, nulle part ailleurs.
P76 rend desormais chaque gabarit de role, avec les delimiteurs qu Ansible en
tirerait — pas une recherche de motif.
DEFAUT 2 — la doctrine promettait 54 greffons et citait check_pgsql. La flotte a
monitoring-plugins-basic : 53, sans check_pgsql ni check_dns ni check_ldap. Le
paquet qui les porte traine samba et snmp sur chaque machine. Un greffon absent
sort en 127, qui n est pas un code Nagios.
21 controles negatifs sur les machines reelles du site. ansible-lint production
0/91, harnais 75 OK.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-14 15:43:52 -04:00
|
|
|
---
|
|
|
|
|
# Supervision derivee du role. Voir docs/supervision-conception.md.
|
|
|
|
|
#
|
|
|
|
|
# CE QUE `client_sante` RAPPORTE DEJA : les unites systemd EN ECHEC de la machine. C'est
|
|
|
|
|
# la base, et elle ne suffit pas ici.
|
|
|
|
|
#
|
|
|
|
|
# UNE WEBAPP NE TOMBE PRESQUE JAMAIS EN « FAILED ». Elle se coince. Le processus vit,
|
|
|
|
|
# systemd la voit `active (running)`, le port est ouvert — et plus une requete n'aboutit :
|
|
|
|
|
# une boucle d'evenements bloquee, un verrou SQLite jamais relache, un pool d'attente
|
|
|
|
|
# sature. Pour systemd tout va bien ; pour l'utilisateur, le site ne repond plus.
|
|
|
|
|
#
|
|
|
|
|
# C'est pourquoi la sonde ne se contente pas de l'etat de l'unite : elle FRAPPE l'app.
|
|
|
|
|
#
|
|
|
|
|
# CE QU'ELLE MESURE, ET OU. Les apps ecoutent en `127.0.0.1:<port>`, derriere un nginx
|
|
|
|
|
# local, lui-meme derriere l'edge. La sonde frappe le port de l'APP — le maillon le plus
|
|
|
|
|
# profond. Si elle est verte et que le site ne repond pas, la panne est dans nginx ou a
|
|
|
|
|
# l'edge, et on l'a appris sans chercher.
|
|
|
|
|
#
|
|
|
|
|
# UNE SEULE SONDE POUR TOUTES LES APPS : une seule CAUSE D'ACTION, aller voir cet
|
|
|
|
|
# hebergeur. Elle nomme celle qui manque.
|
|
|
|
|
#
|
|
|
|
|
# TTL de 5400 s pour un porteur qui passe aux 15 min : trois passages manques avant la
|
|
|
|
|
# peremption. Le silence alerte autant que l'echec.
|
|
|
|
|
sondes:
|
|
|
|
|
- nom: apps-servies
|
|
|
|
|
ttl: 5400
|
|
|
|
|
raison: 'Chacune des webapps declarees repond-elle encore ? Une app ne tombe presque
|
|
|
|
|
jamais en « failed » — elle se coince : le processus vit, systemd la dit active, le
|
|
|
|
|
port est ouvert, et plus une requete n''aboutit. Le rapport d''unites en echec ne
|
|
|
|
|
verra jamais ca.'
|
2026-09-29 16:48:42 -04:00
|
|
|
# SUR LE DORSAL DEPUIS LE 2026-09-29 : c'est lui qui porte les sites ; le frontal les relaie.
|
|
|
|
|
- nom: sites-servis
|
|
|
|
|
ttl: 5400
|
|
|
|
|
raison: 'Chacun des sites statiques declares se sert-il encore ? Le contenu vient
|
|
|
|
|
d''un depot git : une branche renommee, un sous-dossier deplace ou un clone vide
|
|
|
|
|
laissent nginx parfaitement vert avec un site perime, vide, ou en 404. Seul un GET
|
|
|
|
|
sur le `server_name` de chaque site le dit.'
|