38 lines
1.7 KiB
Text
38 lines
1.7 KiB
Text
|
|
#!/bin/bash
|
||
|
|
# GENERE par Set-OPS (role serveur_loki). Ne pas editer a la main.
|
||
|
|
#
|
||
|
|
# SONDE « ingestion » — l'ingesteur est pret, pas seulement le port ouvert
|
||
|
|
#
|
||
|
|
# Contrat : docs/supervision-conception.md (API des greffons Nagios) — une ligne, 0/1/2.
|
||
|
|
# Mise en defaut PAR PARAMETRE : `serveur_loki_sonde_url` (port ferme).
|
||
|
|
set -uo pipefail
|
||
|
|
|
||
|
|
URL={{ serveur_loki_sonde_url }}
|
||
|
|
|
||
|
|
# `/ready` ET PAS UN connect(). Loki ouvre son port bien avant que son ingesteur ne soit
|
||
|
|
# pret ; pendant cette fenetre il accepte et perd. C'est exactement « un connect() ne
|
||
|
|
# prouve rien », applique a un demon qui demarre.
|
||
|
|
s=$(curl -sk --max-time 10 "${URL}/ready" 2>/dev/null)
|
||
|
|
[[ -n "${s}" ]] || { echo "Loki ne repond pas sur ${URL}."; exit 2; }
|
||
|
|
if printf '%s' "${s}" | grep -qi '^ready'; then
|
||
|
|
echo "Loki pret a ingerer."
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
# LE DELAI DE STABILISATION N'EST PAS UNE PANNE, ET LE MESSAGE LE DIT LUI-MEME.
|
||
|
|
# Apres un redemarrage, Loki repond « Ingester not ready: waiting for Ns AFTER BEING
|
||
|
|
# READY » — l'ingesteur EST pret, il purge son delai. Mesure du 2026-09-10 : l'anneau
|
||
|
|
# etait `ACTIVE` et la reponse est passee a `ready` moins d'une minute plus tard.
|
||
|
|
#
|
||
|
|
# J'ai d'abord conclu « panne persistante » sur deux lectures prises a quelques secondes
|
||
|
|
# d'intervalle, juste apres un redemarrage. Deux mesures rapprochees ne distinguent pas un
|
||
|
|
# etat d'un instant. On nomme donc ce cas pour ce qu'il est : un AVERTISSEMENT transitoire,
|
||
|
|
# pas une panne — sans pour autant le taire, parce qu'un delai qui ne finirait jamais
|
||
|
|
# serait, lui, une vraie panne.
|
||
|
|
if printf '%s' "${s}" | grep -qi 'after being ready'; then
|
||
|
|
echo "Loki sort d'un redemarrage (delai de stabilisation) : ${s:0:80}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo "Loki n'est PAS pret a ingerer : ${s:0:90}"
|
||
|
|
exit 2
|