#!/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;"