Set-OPS-Public/roles/serveur_icingaweb2/templates/sonde-console.sh.j2
Daniel Allaire aac74f6043 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

24 lines
1.3 KiB
Django/Jinja

#!/bin/bash
# GENERE par Set-OPS (role serveur_icingaweb2). Ne pas editer a la main.
#
# SONDE « console » — la console de supervision repond-elle encore ?
#
# UNE ENVELOPPE, PAS UNE SONDE ECRITE A LA MAIN. `check_http` vient de
# `monitoring-plugins-basic` : il parle deja l'API des greffons Nagios, gere les delais et
# les redirections. On lui passe l'adresse et on rend SON code de sortie tel quel.
#
# SUR LA BOUCLE LOCALE, ET SANS S'AUTHENTIFIER. En mode `external`, l'ecoute est restreinte
# a 127.0.0.1 et une passerelle SSO se tient devant : la sonde frappe donc la ou
# l'application ecoute vraiment, et se contente de la reponse que rend une requete non
# authentifiee. On mesure « la pile PHP sert encore », pas « l'annuaire accepte encore ».
#
# `-e` PLUTOT QU'UN 200 IMPLICITE : Icinga Web 2 renvoie une REDIRECTION vers son
# formulaire de connexion quand personne n'est authentifie. Exiger un 200 ferait crier la
# sonde sur le comportement NORMAL d'une console saine — la pire sorte de fausse alerte,
# celle qu'on finit par ignorer.
#
# Mise en defaut PAR PARAMETRE : `serveur_icingaweb2_sonde_codes`.
exec /usr/lib/nagios/plugins/check_http \
-H 127.0.0.1 -p {{ serveur_icingaweb2_http_port }} -u '/' \
-e '{{ serveur_icingaweb2_sonde_codes }}' \
-t 10