Icinga ne surveillait rien : aucun objet Host ni Service de Set-OPS, seulement
la config Debian d'origine sur localhost.
Superviser setops-sauvegarde.service aurait reproduit le defaut du jour meme :
l'unite etait VERTE sur onze noeuds pendant qu'elle n'emportait rien. Le noeud
sait qu'il a LANCE sa sauvegarde, pas qu'elle est ARRIVEE. backup-01 evalue donc
ses depots et pousse un resultat passif par noeud vers l'API Icinga.
Trois criteres, parce qu'un seul suffit a mentir : l'instantane existe, il est
recent (26 h / 50 h), il contient au moins un fichier.
Le sens du flux est delibere : le depot parle a la supervision, jamais l'inverse
— compromettre mon-01 ne donne aucun acces aux sauvegardes.
Le ttl de 6 h fait la fraicheur : si le rapporteur se tait, Icinga perime les
services tout seul. C'est le silence qui a laisse le defaut vivre un mois.
Deux erreurs corrigees par la mesure :
- --data-urlencode refuse en Bad Request (l'API veut du JSON) ; le flux, le TLS
et l'auth marchaient, seule la charge etait perdue.
- le seuil « vide » en octets signalait a tort idm-01 (2363 o) : un export LDIF
d'un annuaire a un compte pese cela. « Vide » se mesure en FICHIERS. Et le
verdict est un AVERTISSEMENT : la machine ne distingue pas « les donnees ont
disparu » de « il n'y en a pas encore ».
Reserve assumee : curl -k — l'API presente le cert de sa propre AC, pas step-ca.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
23 lines
1.1 KiB
YAML
23 lines
1.1 KiB
YAML
---
|
|
# Groupes DETENTEURS D'ETAT — la porte d'entree publique du catalogue de sauvegarde.
|
|
#
|
|
# Pourquoi un fichier a part, et SANS Jinja. Deux consommateurs externes ont besoin de
|
|
# cette liste : `serveur_backup` (qui rapporte a Icinga l'etat reel des instantanes) et
|
|
# `serveur_icinga` (qui cree les objets a surveiller). Tous deux la lisent par
|
|
# `include_vars` — et `include_vars` charge le FICHIER ENTIER. Charger `defaults/main.yml`
|
|
# forcerait le rendu de `client_backup_repo`, qui reference des variables absentes de leur
|
|
# play : le deploiement echouait sur « client_backup_utilisateur_distant is undefined »
|
|
# (mesure le 2026-08-11). Ce fichier ne contient donc que des litteraux.
|
|
#
|
|
# `tasks/main.yml` REFUSE si cette liste et `client_backup_catalogue` divergent : on ne
|
|
# peut pas ajouter un detenteur d'etat sans que la supervision et P36 l'apprennent.
|
|
client_backup_groupes_etat:
|
|
- serveur_step_ca
|
|
- serveur_openldap
|
|
- serveur_postgresql
|
|
- serveur_dovecot
|
|
- serveur_forgejo
|
|
- serveur_nextcloud
|
|
- serveur_rspamd
|
|
- serveur_web_frontal
|
|
- serveur_web_dorsal
|