Surveillance de la date d'expiration du nom de domaine avec Zabbix

Cet article donne un aperçu détaillé de la façon de configurer la surveillance des dates d'expiration de vos noms de domaine dans Zabbix. Cela vous évitera de manquer les dates de renouvellement et d'expiration (fin de délégation) de vos noms de domaine.

Si l'ancien propriétaire ne paie pas le nom de domaine dans les 30 jours suivant la fin de la période d'enregistrement, le domaine expirera (son statut passera à NotDelegated). Examinons un simple script bash et un modèle Zabbix qui vous permettent de vérifier et de surveiller la date d'expiration du nom de domaine.

Nous supposons que vous avez déjà installé un serveur Zabbix. Nous utiliserons un petit script bash pour obtenir les informations de délégation de domaine auprès du registraire. Pour que ce script fonctionne, l'utilitaire whois doit être installé sur votre hôte Linux.

  • CentOS/RHEL/Rocky Linux :$ sudo dnf install whois -y
  • Ubuntu/Debian :$ sudo apt install whois -y

Vérifierzabbix-server.conffichier pour le chemin du répertoire pour les scripts externes. Par défaut, le chemin suivant est utilisé (décommentez cette ligne) :

ExternalScripts=/usr/lib/zabbix/externalscripts

Dans ce répertoire, créez le fichier/usr/lib/zabbix/externalscripts/domain_expiration.shcontenant le code suivant :

#!/bin/bash
DOMAIN="$1"
exdate=`whois $DOMAIN | grep -E 'paid|Expire|Expiry' | grep -o -E '[0-9]{4}.[0-9]{2}.[0-9]{2}|[0-9]{2}/[0-9]{2}/[0-9]{4}'`
expire=$((`date -d "$exdate" '+%s'`))
today=$((`date '+%s'`))
leftsec=$(($expire - $today))
leftdays=$(($leftsec/86400))
echo $leftdays

Rendez votre fichier .sh exécutable :

$ sudo chmod +x /usr/lib/zabbix/externalscripts/domain_expiration.sh

Voir aussi :Différences entre l'expiration du compte utilisateur et l'expiration du mot de passe

Vérifiez que le script fonctionne correctement. En paramètre, précisez le nom du domaine pour lequel vous souhaitez obtenir le nombre de jours d'expiration de la délégation.

$ /usr/lib/zabbix/externalscripts/domain_expiration.sh woshub.com

Dans mon exemple, le script a indiqué qu'il restait 532 jours avant la date d'expiration du domaine.

Nous devons maintenant autoriser l'agent Zabbix à exécuter ce script personnalisé à l'aide du paramètre UserParameter.

$ sudo mcedit /etc/zabbix/zabbix_agentd.conf

Ajoutez la ligne suivante :

UserParameter=domainexpire[*],/usr/lib/zabbix/externalscripts/domain_expiration.sh $1

Cette option vous permet d'exécuter un script externe spécifique via l'agent Zabbix. Vous devez utiliser ledomaineexpireparamètre pour appeler ce script depuis Zabbix.

Redémarrez l'agent :

$ sudo service zabbix-agent restart

Assurez-vous que l'agent Zabbix est capable de récupérer des données via le nouveau paramètre. Vous utilisez l'outil zabbix-get pour tester l'agent :

$ sudo apt install zabbix-get
$ zabbix_get -s 127.0.0.1 -p 10050 -k domainexpire[woshub.com]

Si vous avez tout configuré correctement, la commande doit renvoyer le nombre de jours avant l'expiration de l'enregistrement du domaine.

Maintenant, ajoutez un nouveauCheckDomainExpirationmodèle pour surveiller la date d'expiration du domaine dans Zabbix.

Dans l'onglet éléments, ajoutez le paramètre :

  • Nom : Délai d'expiration du domaine{$DOMAINNAME}
  • Type : Agent Zabbix
  • Clé:domainexpire[{$DOMAINNAME}]
  • Type d'information : Numérique (non signé)
  • Intervalle de mise à jour : 1 j
  • Histoire : 90j
  • Tendance : 365j

Ajoutez maintenant un nouveau déclencheur :

  • Nom : le nom de domaine {$DOMAINNAME} expirera dans
  • Expression:last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])<39
  • Gravité : élevée

Celui-ci sera activé s'il reste moins de 39 jours avant l'expiration de l'enregistrement du domaine.

En option, vous pouvez également ajouter un déclencheur pour la récupération :

Expression de récupération :last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])>=40

Ajoutez un nouvel hôte à Zabbix pour votre nom de domaine avec leInterface des agentstaper.

Dans l'onglet Macros, précisez le nom du domaine dont vous souhaitez surveiller la date d'expiration :

  • Macro :{$DOMAINNAME}
  • Valeur:woshub.com

Enfin, attribuez le modèle CheckDomainExpiration que vous avez créé précédemment à l'hôte.

Ce modèle vérifie la date d'enregistrement du domaine une fois par jour. Pour obtenir les données whois immédiatement, recherchez le paramètre requis dans l'onglet hôte et cliquez surExécuter maintenant.

Accédez à Surveillance -> Dernières données. Zabbix montre que le nom de domaine expirera dans 532 jours.

Vous pouvez définir ce déclencheur pour envoyer une alerte par e-mail ou à votre application de messagerie préférée (ou afficher le problème sur le tableau de bord Zabbix).

Vous pouvez suivre les étapes ci-dessus pour ajouter tous les noms de domaine (dans l'onglet Hôtes) dont vous souhaitez surveiller les dates d'expiration.

Related Posts