Set-OPS-Public/roles/client_sante/defaults/main.yml
Daniel Allaire 90228cb55e supervision : la sonde se declare dans le role, comme le flux
LE CONSTAT. 39 roles declarent leurs flux, 32 leur empreinte, 32 leur
authentification — tous derives. Et 19 groupes sur 19 declaraient une
surveillance en prose que RIEN n executait ; Icinga en surveillait deux.
La carte disait ce qui etait surveille, et personne ne surveillait.

LE MECANISME. Un role declare ses sondes dans meta/supervision.yml et
depose lui-meme son script dans /usr/local/lib/setops/sondes/. Le porteur
client_sante les fait toutes tourner et pousse un resultat passif par
sonde, sans savoir ce qu elles mesurent. serveur_icinga derive les objets
Service ET le filtre de permission d API des memes declarations. Ajouter
une sonde ne demande de toucher ni au porteur ni a Icinga.

PREMIERE SONDE : client_pki/certificat. Heures restantes sur le certificat
reellement pose, chaine verifiee, et empreinte SERVIE comparee au disque
quand un service le consomme. 14/14 au tenant, 7/7 au site.

QUATRE OBSTACLES, ET TROIS SONT LA MEME LECON.

La sonde a rendu 14/14 en CRITIQUE sur une PKI saine : openssl verify
-CAfile racine ne trouve pas l intermediaire qui signe nos certificats.
step certificate verify, lui, repond VALIDE.

Deployee au site, elle a rendu 5/7 : le seuil d avertissement (12 h)
etait AU-DESSUS du point de renouvellement (8 h, le tiers restant). Elle
criait avant que le mecanisme ne soit cense agir. Seuils ramenes a 6 h et
3 h. Un seuil se DERIVE du moment ou le mecanisme surveille agit.

Une alarme toujours allumee ne vaut pas mieux qu une alarme jamais
allumee : elle apprend a ne plus regarder. Une sonde se prouve DEUX FOIS,
verte sur le sain et rouge sur le casse.

Le filtre d API etait ecrit avant la lecture des declarations : les
services auraient existe et Icinga aurait refuse leurs resultats.

Et mon controle negatif a casse un service reel : substituer le certificat
d hote a fait propager un cert sans sa clef vers node_exporter. Un controle
negatif se fait sur une COPIE.

P64 tient les deux bouts : declaree sans etre deposee, ou deposee sans
etre declaree. Trois controles negatifs rejoues.

make prouver : CONFORME, 64 OK, 0 echec, 0 saute.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-09 21:45:49 -04:00

38 lines
2 KiB
YAML

---
# A QUI L'ON RAPPORTE — derive du groupe, jamais ecrit en dur. Vide = pas de supervision
# dans cet ecosysteme, et le role ne pose alors ni script ni minuteur : un timer qui
# echoue chaque heure apprend a ignorer le rouge.
client_sante_icinga_hote: "{{ (groups['serveur_icinga'] | default([]) | first) | default('') }}"
# LE MEME COMPTE D'API QUE LE RAPPORT DE SAUVEGARDE, et c'est un choix.
#
# Un second compte serait plus pur — un secret par usage. Il exigerait une CLEF DE VOUTE
# DE PLUS dans chaque ecosysteme, donc un geste manuel a chaque nouvel ecosysteme, pour
# une portee identique : ce compte ne peut deja QUE poser un resultat passif, et
# seulement sur des services nommes. On elargit le filtre de deux noms a trois, on ne
# donne aucun pouvoir nouveau.
client_sante_icinga_utilisateur: "setops-depot"
client_sante_icinga_motdepasse: "{{ vault_icinga_api_depot | default('') }}"
client_sante_ca_verification: "/etc/setops/icinga-ca.crt"
client_sante_icinga_ca_source: "/var/lib/icinga2/ca/ca.crt"
# `ttl` du resultat passif. AU-DELA, ICINGA PERIME LE SERVICE DE LUI-MEME — c'est ce qui
# fait que le SILENCE alerte, et pas seulement l'echec. Un noeud eteint, un timer casse,
# un reseau coupe : trois facons de ne plus rien dire, et les trois doivent se voir.
#
# Trois fois la periode : deux passages peuvent manquer sans crier au loup.
client_sante_periode: "15min"
client_sante_ttl_icinga: 2700
# UNITES TOLEREES — nommees, jamais un motif large.
#
# Vide par defaut, et c'est le bon defaut : une unite en echec permanent use le seul
# signal qui devrait alerter. Le jour ou une VRAIE unite tombe, le compte passe de 1 a 2
# et personne ne fait la difference. Si une unite doit etre toleree, elle est ECRITE ICI,
# avec sa raison — pas absorbee par un filtre qui en cacherait d'autres.
client_sante_unites_tolerees: []
# `ttl` des sondes de ROLE. Plus long que celui de `sante` : une sonde de role peut etre
# plus lente (une poignee TLS, une requete), et on ne veut pas qu'un hoquet la perime.
# Six passages du porteur.
client_sante_ttl_sondes: 5400