2026-07-07 03:08:09 -04:00
|
|
|
---
|
|
|
|
|
# Flux réseau d'Icinga 2 (moteur de supervision). Voir docs/flux-conception.md.
|
|
|
|
|
# IcingaDB (Redis 6380) est co-localisé : consommé en localhost par le frontal Icinga Web 2.
|
|
|
|
|
flux:
|
|
|
|
|
- sens: ingress
|
|
|
|
|
port: 5665
|
|
|
|
|
protocole: tcp
|
|
|
|
|
pair: localhost
|
|
|
|
|
chiffrement: clair
|
|
|
|
|
raison: "API Icinga 2 consommée en local par Icinga Web 2 co-localisé."
|
2026-09-02 18:53:44 -04:00
|
|
|
# LES NOEUDS RAPPORTENT EUX-MEMES DEPUIS LE 2026-09-02.
|
|
|
|
|
#
|
|
|
|
|
# Tant que le depot vivait dans l'ecosysteme, il rapportait pour tout le monde et
|
|
|
|
|
# `serveur_backup` suffisait comme pair. Depuis que les ecosystemes deposent chez leur
|
|
|
|
|
# HEBERGEUR — qui heberge du chiffre et ne peut rien juger — c'est chaque detenteur
|
|
|
|
|
# d'etat qui verifie SON depot et le rapporte. Le pair, c'est donc `client_backup`.
|
|
|
|
|
#
|
|
|
|
|
# Les deux coexistent : un ecosysteme qui garde son propre depot continue de le laisser
|
|
|
|
|
# rapporter. `serveur_backup` reste declare juste en dessous.
|
|
|
|
|
- sens: ingress
|
|
|
|
|
port: 5665
|
|
|
|
|
protocole: tcp
|
|
|
|
|
pair: client_backup
|
|
|
|
|
chiffrement: tls-requis
|
|
|
|
|
raison: "Rapport passif de chaque detenteur d'etat sur SON depot distant : le depot du site heberge du chiffre et ne peut pas le juger."
|
supervision : c'est le DEPOT qui dit ou en sont les sauvegardes
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>
2026-08-11 21:39:05 -04:00
|
|
|
- sens: ingress
|
|
|
|
|
port: 5665
|
|
|
|
|
protocole: tcp
|
|
|
|
|
pair: serveur_backup
|
|
|
|
|
chiffrement: tls-requis
|
|
|
|
|
partage: true
|
|
|
|
|
raison: "Le depot de sauvegarde depose ses resultats passifs (portee : process-check-result sur « sauvegarde: * »)."
|
supervision : le site rapporte aussi — et deux corrections pour que ca MARCHE
7 machines du site deployees, 0 echec au playbook — et CINQ rapports sur
sept en TimeoutError. Un playbook vert ne prouve pas qu une chose
fonctionne ; seul l essai de bout en bout l a dit.
1. LE PAIR DE LA FRONTIERE. Le role client declarait son egress 5665, la
politique de sortie etait accept, la regle d entree de l hote autorisait
la source — et les paquets mouraient ENTRE les deux. La frontiere filtre
l inter-zones du site et ne resout que les roles que les machines PORTENT
AU PLAN ; une integration universelle n y figure pas, elle est derivee.
pair: client_sante produisait donc une regle est-ouest correcte et AUCUNE
regle a la frontiere. Le pair devient serveur_debian — le vocabulaire du
depot pour « tout noeud », que le generateur traite deja comme tel, et
exact au sens strict. Six regles creees, zero retiree, une par patte de
zone.
2. LE RAPPORTEUR S ACCUSAIT LUI-MEME. Pendant l heure de blocage,
setops-sante.service a echoue ; une fois debloque, cinq machines ont
rapporte CRITIQUE en citant leur propre rapporteur, et systemd garde l
etat failed jusqu a un reset-failed. Sa propre unite est desormais exclue
du compte — non par complaisance : sa sante est deja mesuree, et mieux,
par la FRAICHEUR de ses envois. S il ne peut plus parler, le ttl perime le
service, ce qui se voit precisement quand il ne peut PAS ecrire.
ETAT FINAL : 7/7 au site, 14/14 au tenant, tous OK. Controle negatif
rejoue sur les deux flottes.
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
2026-09-09 20:48:36 -04:00
|
|
|
# LE RAPPORT DE SANTE : TOUS les noeuds, pas seulement les detenteurs d'etat.
|
|
|
|
|
#
|
|
|
|
|
# Le declarer ici n'est pas une redondance avec `client_sante/meta/flux.yml`. Les deux
|
|
|
|
|
# faces sont necessaires, et l'oubli s'est paye le 2026-09-09 : le role client etait
|
|
|
|
|
# deploye, sa face EGRESS declaree, la politique de sortie etait `accept`, la regle
|
|
|
|
|
# d'entree de l'hote autorisait bien la source — et cinq machines sur sept rendaient
|
|
|
|
|
# `TimeoutError`. Les paquets mouraient ENTRE les deux, a la frontiere, qui filtre le
|
|
|
|
|
# trafic inter-zones et ne connait que ce que le registre lui dit.
|
|
|
|
|
#
|
|
|
|
|
# `make site-appliquer GROUPE=client_sante` avait pourtant rendu 7/7, 0 echec : un
|
|
|
|
|
# deploiement REUSSI sur un flux qui ne passait pas. Seul l'essai de bout en bout l'a
|
|
|
|
|
# dit — un playbook vert ne prouve pas qu'une chose fonctionne.
|
|
|
|
|
#
|
|
|
|
|
# LE PAIR EST `serveur_debian`, PAS `client_sante`, ET C'EST LA LE POINT.
|
|
|
|
|
#
|
|
|
|
|
# La frontiere ne connait que les roles que les machines PORTENT AU PLAN. Une
|
|
|
|
|
# integration universelle n'y figure pas : elle est derivee, pas declaree. Ecrire
|
|
|
|
|
# `pair: client_sante` produisait donc une regle est-ouest correcte et AUCUNE regle a
|
|
|
|
|
# la frontiere — d'ou les cinq `TimeoutError` sur sept. Le meme piege explique pourquoi
|
|
|
|
|
# le flux `client_backup` juste au-dessus ne suffit pas seul : c'est `serveur_backup`,
|
|
|
|
|
# role REEL du site, qui ouvre la porte.
|
|
|
|
|
#
|
|
|
|
|
# `serveur_debian` est le vocabulaire du depot pour « tout noeud » — le socle que
|
|
|
|
|
# chaque machine porte — et le generateur de frontiere le traite deja comme tel. C'est
|
|
|
|
|
# exact au sens strict : tout noeud rapporte sa sante.
|
|
|
|
|
#
|
|
|
|
|
# `partage: true` : plusieurs pairs entrent par le meme port, la regle est mutualisee.
|
|
|
|
|
- sens: ingress
|
|
|
|
|
port: 5665
|
|
|
|
|
protocole: tcp
|
|
|
|
|
pair: serveur_debian
|
|
|
|
|
chiffrement: tls-requis
|
|
|
|
|
partage: true
|
|
|
|
|
raison: "Rapport passif de sante de chaque noeud (unites systemd en echec)."
|
2026-07-07 03:08:09 -04:00
|
|
|
- sens: egress
|
|
|
|
|
port: 5432
|
|
|
|
|
protocole: tcp
|
|
|
|
|
pair: serveur_postgresql
|
|
|
|
|
chiffrement: tls-requis
|
|
|
|
|
raison: "Base relationnelle du moteur Icinga (verify-full)."
|