Set-OPS-Public/roles/serveur_web_dorsal/meta/supervision.yml

31 lines
1.5 KiB
YAML
Raw Normal View History

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.'