Monitoreo de la fecha de vencimiento del nombre de dominio con Zabbix
Este artículo brinda una descripción detallada de cómo configurar el monitoreo de las fechas de vencimiento de sus nombres de dominio en Zabbix. Esto evitará que te pierdas las fechas de renovación y vencimiento (fin de delegación) de tus nombres de dominio.
Si el propietario anterior no paga el nombre de dominio dentro de los 30 días posteriores al final del período de registro, el dominio caducará (su estado cambiará a NoDelegado). Veamos un script bash simple y una plantilla Zabbix que le permiten verificar y monitorear la fecha de vencimiento del nombre de dominio.
Suponemos que ya tienes instalado un servidor Zabbix. Usaremos un pequeño script bash para obtener la información de delegación de dominio del registrador. Para que este script funcione, debe tener instalada la utilidad whois en su host Linux.
CentOS/RHEL/Rocky Linux:
$ sudo dnf install whois -yUbuntu/Debian:
$ sudo apt install whois -y
Verifique el archivo zabbix-server.conf para conocer la ruta del directorio para scripts externos. De forma predeterminada, se utiliza la siguiente ruta (descomenta esta línea):
ExternalScripts=/usr/lib/zabbix/externalscriptsEn este directorio, cree el archivo /usr/lib/zabbix/externalscripts/domain_expiration.sh que contiene el siguiente código:
#!/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 $leftdaysHaga que su archivo .sh sea ejecutable:
$ sudo chmod +x /usr/lib/zabbix/externalscripts/domain_expiration.shComprueba que el script funciona correctamente. Como parámetro, especifique el nombre del dominio para el cual desea obtener la cantidad de días que vence la delegación.
$ /usr/lib/zabbix/externalscripts/domain_expiration.sh a-d.siteEn mi ejemplo, el script devolvió que faltaban 532 días para la fecha de vencimiento del dominio.
Ahora debemos permitir que el agente Zabbix ejecute este script personalizado usando el parámetro UserParameter.
$ sudo mcedit /etc/zabbix/zabbix_agentd.confAgregue la siguiente línea:
UserParameter=domainexpire[*],/usr/lib/zabbix/externalscripts/domain_expiration.sh $1Esta opción le permite ejecutar un script externo específico a través del Agente Zabbix. Debes usar el parámetro domainexpire para llamar a este script desde Zabbix.
Reinicie el agente:
$ sudo service zabbix-agent restartAsegúrese de que el agente zabbix pueda recuperar datos a través del nuevo parámetro. Utilice la herramienta zabbix-get para probar el agente:
$ sudo apt install zabbix-get
$ zabbix_get -s 127.0.0.1 -p 10050 -k domainexpire[a-d.site]Si ha configurado todo correctamente, el comando debería devolver el número de días antes de que caduque el registro del dominio.
Ahora agregue una nueva plantilla CheckDomainExpiration para monitorear la fecha de vencimiento del dominio en Zabbix.
En la pestaña de elementos, agregue el parámetro:
Nombre: hora de vencimiento del dominio{$DOMAINNAME}
Tipo: Agente Zabbix
Llave:
domainexpire[{$DOMAINNAME}]Tipo de información: Numérica (sin firmar)
-
Intervalo de actualización: 1d
Historia: 90d
Trenfd: 365d
Ahora agregue un nuevo disparador:
Nombre: El nombre de dominio {$DOMAINNAME} caducará en
Expresión:
last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])<39Gravedad: alta
Esto se activará si faltan menos de 39 días para que expire el registro del dominio.
Opcionalmente, también puedes agregar un activador de recuperación:
Expresión de recuperación:
last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])>=40Agregue un nuevo host a Zabbix para su nombre de dominio con el tipo Interfaz de agente.
En la pestaña Macros, especifique el nombre del dominio cuya fecha de vencimiento desea monitorear:
Macro:
{$DOMAINNAME}Valor:
a-d.site
Finalmente, asigne la plantilla CheckDomainExpiration que creó anteriormente al host.
Esta plantilla verifica la fecha de registro del dominio una vez al día. Para obtener los datos whois inmediatamente, busque el parámetro requerido en la pestaña del host y haga clic en Ejecutar ahora.
Vaya a Monitoreo -> Datos más recientes. Zabbix muestra que el nombre de dominio caducará en 532 días.
Puede configurar este activador para enviar una alerta por correo electrónico o su aplicación de mensajería favorita (o mostrar el problema en el panel de Zabbix).
Puede seguir los pasos anteriores para agregar todos los nombres de dominio (en la pestaña Hosts) cuyas fechas de vencimiento desea monitorear.







