CE QU IL FERME. openipmi.service echouait a chaque demarrage sur les
quatorze machines depuis le 2026-09-02, et systemctl --failed rendait ZERO
partout : non parce qu elles allaient bien, mais parce qu aucune n avait
redemarre depuis. Il a fallu qu un humain redemarre une machine pour que
le defaut existe aux yeux de quelqu un. Un controle qui ne peut echouer
qu au demarrage ne mesure rien tant que rien ne demarre.
PASSIF, ET A DUREE DE VIE. Un controle actif ne voit pas la machine MUETTE.
Ici c est le noeud qui parle, et le ttl de son envoi fait la fraicheur :
sans nouvelle, Icinga perime le service tout seul. Le silence alerte autant
que l echec. Le minuteur declenche AU DEMARRAGE autant que toutes les 15
min : les echecs de cette famille naissent au boot.
CRITIQUE DES LA PREMIERE UNITE, jamais un seuil — une unite en echec est
soit un vrai probleme soit du bruit a retirer, et un seuil ferait vivre le
bruit. Les tolerances se nomment une par une, vide par defaut.
CONTROLE NEGATIF. Unite factice sur obs-01, etat relu dans IcingaDB :
CRITICAL, et le verdict NOMME l unite. Les treize autres OK. Apres
nettoyage : 14/14 OK.
UN CONFLIT EVITE. setops-sauvegardes.conf definissait les object Host ; un
second fichier de controle aurait redefini les memes, et Icinga refuse un
objet en double — la configuration entiere aurait ete rejetee, donc AUCUNE
supervision, en voulant en ajouter. Les hotes vivent maintenant dans
setops-hotes.conf, definis une fois.
TROIS OBSTACLES. ${#tableau[@]} contient {# que Jinja lit comme un debut de
commentaire (remede : comment_start_string en tete du gabarit). Ma premiere
sonde a traduit un 403 « Missing permission: objects/query/service » en
« 0 service » — encore un echec qui ecrasait permission ; l etat se lit
dans IcingaDB. Et un echec apt transitoire sur mon-01, local et disparu au
second essai : mesure avant conclusion.
NON FAIT : le SITE n a pas recu client_sante.
make prouver : CONFORME, 63 OK, 0 echec, 0 saute.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
33 lines
1.8 KiB
YAML
33 lines
1.8 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: []
|