Búsqueda de sitios web

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 -y
  • Ubuntu/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/externalscripts

En 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 $leftdays

Haga que su archivo .sh sea ejecutable:

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

Comprueba 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.site

En 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.conf

Agregue la siguiente línea:

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

Esta 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 restart

Asegú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}])<39
  • Gravedad: 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}])>=40

Agregue 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.

Artículos relacionados