25 lines
1.2 KiB
Text
25 lines
1.2 KiB
Text
|
|
#!/bin/bash
|
||
|
|
# GENERE par Set-OPS (role serveur_powerdns). Ne pas editer a la main.
|
||
|
|
#
|
||
|
|
# SONDE « zones » — l'autoritatif repond et sert ses zones
|
||
|
|
#
|
||
|
|
# Contrat : docs/supervision-conception.md (API des greffons Nagios) — une ligne, 0/1/2.
|
||
|
|
# Mise en defaut PAR PARAMETRE : `serveur_powerdns_sonde_minimum` (seuil impossible).
|
||
|
|
set -uo pipefail
|
||
|
|
|
||
|
|
MINIMUM={{ serveur_powerdns_sonde_minimum }}
|
||
|
|
|
||
|
|
systemctl is-active --quiet pdns || { echo "L'autoritatif (pdns) n'est pas actif."; exit 2; }
|
||
|
|
[[ "$(pdns_control rping 2>&1 | head -1)" == "PONG" ]] \
|
||
|
|
|| { echo "L'autoritatif ne repond pas a son propre controle."; exit 2; }
|
||
|
|
|
||
|
|
# LES ZONES, PAS SEULEMENT LE DEMON. Un PowerDNS sans zone repond NXDOMAIN a tout, ce qui
|
||
|
|
# se lit exactement comme « ce nom n'existe pas » — la panne la plus trompeuse du DNS.
|
||
|
|
n=$(pdnsutil list-all-zones 2>/dev/null | grep -vc '^All zonecount')
|
||
|
|
[[ "${n}" =~ ^[0-9]+$ ]] || { echo "Impossible de lister les zones."; exit 2; }
|
||
|
|
if (( n < MINIMUM )); then
|
||
|
|
echo "L'autoritatif ne sert que ${n} zone(s), moins que ${MINIMUM} — la resolution interne repondra NXDOMAIN.|zones=${n};${MINIMUM};;0;"
|
||
|
|
exit 2
|
||
|
|
fi
|
||
|
|
echo "Autoritatif : ${n} zone(s) servie(s).|zones=${n};${MINIMUM};;0;"
|