当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 Zabbix 监控域名过期日期

作者:精品下载站 日期:2024-12-14 06:34:36 浏览:15 分类:玩电脑

使用 Zabbix 监控域名过期日期


本文详细概述了如何在 Zabbix 中配置域名过期日期的监控。这将防止您错过域名的续订日期和到期日期(授权结束)。

如果前任所有者在注册期结束后的 30 天内未支付域名费用,则该域名将过期(其状态将更改为未授权)。让我们看一个简单的 bash 脚本和 Zabbix 模板,它允许您检查和监控域名过期日期。

我们假设您已经安装了 Zabbix 服务器。我们将使用一个小型 bash 脚本从注册商处获取域委托信息。要使此脚本正常工作,您必须在 Linux 主机上安装 whois 实用程序。

  • CentOS/RHEL/Rocky Linux:

    $ sudo dnf install whois -y
  • Ubuntu/Debian:

    $ sudo apt install whois -y

检查 zabbix-server.conf 文件中外部脚本的目录路径。默认情况下,使用以下路径(取消注释此行):

ExternalScripts=/usr/lib/zabbix/externalscripts

[玩转系统] 使用 Zabbix 监控域名过期日期

在此目录中,创建包含以下代码的文件 /usr/lib/zabbix/externalscripts/domain_expiration.sh

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

使您的 .sh 文件可执行:

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

检查脚本是否正常工作。作为参数,指定您想要获取委派到期天数的域的名称。

$ /usr/lib/zabbix/externalscripts/domain_expiration.sh a-d.site

在我的示例中,脚本返回距离域名到期日期还有 532 天。

[玩转系统] 使用 Zabbix 监控域名过期日期

现在我们必须允许 Zabbix 代理使用 UserParameter 参数运行此自定义脚本。

$ sudo mcedit /etc/zabbix/zabbix_agentd.conf

添加以下行:

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

此选项允许您通过 Zabbix Agent 运行特定的外部脚本。您必须使用 domainexpire 参数从 Zabbix 调用此脚本。

重新启动代理:

$ sudo service zabbix-agent restart

确保 zabbix 代理能够通过新参数检索数据。您使用 zabbix-get 工具来测试代理:

$ sudo apt install zabbix-get
$ zabbix_get -s 127.0.0.1 -p 10050 -k domainexpire[a-d.site]

如果您已正确配置所有内容,该命令应返回域注册到期前的天数。

[玩转系统] 使用 Zabbix 监控域名过期日期

现在添加一个新的 CheckDomainExpiration 模板来监控 Zabbix 中的域过期日期。

在项目选项卡上,添加参数:

  • 名称:域名过期时间{$DOMAINNAME}

  • 类型:Zabbix代理

  • 钥匙:

    domainexpire[{$DOMAINNAME}]
  • 信息类型:数字(无符号)

  • 更新间隔:1d

  • 病史:90天

  • 趋势:365d

[玩转系统] 使用 Zabbix 监控域名过期日期

现在添加一个新的触发器:

  • 名称:域名 {$DOMAINNAME} 将于

  • 表达:

    last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])<39
  • 严重性:高

如果距离域名注册到期时间不到 39 天,此功能将被激活。

或者,您还可以添加恢复触发器:

恢复表达式:

last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])>=40

[玩转系统] 使用 Zabbix 监控域名过期日期

使用代理接口类型为您的域名添加新主机到 Zabbix。

在“宏”选项卡中,指定要监控其过期日期的域的名称:

  • 宏:

    {$DOMAINNAME}
  • 价值:

    a-d.site

[玩转系统] 使用 Zabbix 监控域名过期日期

最后,将您之前创建的 CheckDomainExpiration 模板分配给主机。

该模板每天检查一次域名注册日期。要立即获取 whois 数据,请在主机选项卡中找到所需的参数,然后单击立即执行

[玩转系统] 使用 Zabbix 监控域名过期日期

转到监控 -> 最新数据。 Zabbix显示域名将在532天后过期。

您可以设置此触发器以将警报发送到电子邮件或您喜欢的消息应用程序(或在 Zabbix 仪表板上显示问题)。

您可以按照上述步骤添加要监控到期日期的所有域名(在“主机”选项卡中)。

[玩转系统] 使用 Zabbix 监控域名过期日期

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯