ค้นหาเว็บไซต์

การตรวจสอบวันหมดอายุชื่อโดเมนด้วย Zabbix


บทความนี้จะให้ภาพรวมโดยละเอียดเกี่ยวกับวิธีกำหนดค่าการตรวจสอบวันหมดอายุของชื่อโดเมนของคุณใน Zabbix วิธีนี้จะป้องกันไม่ให้คุณพลาดวันต่ออายุและวันหมดอายุ (สิ้นสุดการมอบหมาย) ชื่อโดเมนของคุณ

หากเจ้าของคนก่อนไม่ชำระค่าชื่อโดเมนภายใน 30 วันหลังจากสิ้นสุดระยะเวลาการจดทะเบียน โดเมนจะหมดอายุ (สถานะจะเปลี่ยนเป็น NotDelegated) มาดูสคริปต์ทุบตีง่ายๆ และเทมเพลต Zabbix ซึ่งช่วยให้คุณตรวจสอบและตรวจสอบวันหมดอายุของชื่อโดเมนได้

เราถือว่าคุณได้ติดตั้งเซิร์ฟเวอร์ Zabbix ไว้แล้ว เราจะใช้สคริปต์ทุบตีขนาดเล็กเพื่อรับข้อมูลการมอบหมายโดเมนจากผู้รับจดทะเบียน เพื่อให้สคริปต์นี้ทำงานได้ คุณต้องติดตั้งยูทิลิตี้ whois บนโฮสต์ Linux ของคุณ

  • CentOS/RHEL/ร็อคกี้ ลินุกซ์:

    $ sudo dnf install whois -y
  • อูบุนตู/เดเบียน:

    $ sudo apt install whois -y

ตรวจสอบไฟล์ zabbix-server.conf เพื่อหาเส้นทางไดเรกทอรีสำหรับสคริปต์ภายนอก ตามค่าเริ่มต้น เส้นทางต่อไปนี้จะถูกใช้ (ไม่ใส่หมายเหตุบรรทัดนี้):

ExternalScripts=/usr/lib/zabbix/externalscripts

ในไดเร็กทอรีนี้ ให้สร้างไฟล์ /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 รันสคริปต์ที่กำหนดเองนี้โดยใช้พารามิเตอร์ UserParameter

$ sudo mcedit /etc/zabbix/zabbix_agentd.conf

เพิ่มบรรทัดต่อไปนี้:

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

ตัวเลือกนี้ช่วยให้คุณสามารถเรียกใช้สคริปต์ภายนอกเฉพาะผ่านตัวแทน Zabbix คุณต้องใช้พารามิเตอร์ 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]

หากคุณกำหนดค่าทุกอย่างถูกต้องแล้ว คำสั่งควรส่งคืนจำนวนวันก่อนการจดทะเบียนโดเมนจะหมดอายุ

ตอนนี้เพิ่มเทมเพลต CheckDomainExpiration ใหม่เพื่อตรวจสอบวันหมดอายุของโดเมนใน Zabbix

บนแท็บรายการ ให้เพิ่มพารามิเตอร์:

  • ชื่อ: เวลาหมดอายุของโดเมน {$DOMAINNAME}

  • ประเภท: ตัวแทน Zabbix

  • สำคัญ:

    domainexpire[{$DOMAINNAME}]
  • ประเภทข้อมูล: ตัวเลข (ไม่ได้ลงนาม)

  • ช่วงเวลาอัปเดต: 1d

  • ประวัติศาสตร์: 90d

  • เทรนฟด์: 365d

ตอนนี้เพิ่มทริกเกอร์ใหม่:

  • ชื่อ: ชื่อโดเมน {$DOMAINNAME} จะหมดอายุภายใน

  • การแสดงออก:

    last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])<39
  • ความรุนแรง: สูง

สิ่งนี้จะเปิดใช้งานหากมีเวลาน้อยกว่า 39 วันก่อนการจดทะเบียนโดเมนจะหมดอายุ

คุณยังสามารถเพิ่มทริกเกอร์สำหรับการกู้คืนได้อีกด้วย:

การแสดงออกของการกู้คืน:

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

เพิ่มโฮสต์ใหม่ให้กับ Zabbix สำหรับชื่อโดเมนของคุณด้วยประเภท อินเทอร์เฟซตัวแทน

ในแท็บ Macros ระบุชื่อโดเมนที่มีวันหมดอายุที่คุณต้องการตรวจสอบ:

  • มาโคร:

    {$DOMAINNAME}
  • ค่า:

    a-d.site

สุดท้าย กำหนดเทมเพลต CheckDomainExpiration ที่คุณสร้างไว้ก่อนหน้านี้ให้กับโฮสต์

เทมเพลตนี้จะตรวจสอบวันที่จดทะเบียนโดเมนวันละครั้ง หากต้องการรับข้อมูล whois ทันที ให้ค้นหาพารามิเตอร์ที่ต้องการในแท็บโฮสต์แล้วคลิก ดำเนินการทันที

<แข็งแกร่ง>

ไปที่การตรวจสอบ -> ข้อมูลล่าสุด Zabbix แจ้งว่าชื่อโดเมนจะหมดอายุใน 532 วัน

คุณสามารถตั้งค่าทริกเกอร์นี้ให้ส่งการแจ้งเตือนไปยังอีเมลหรือแอปส่งข้อความที่คุณชื่นชอบ (หรือแสดงปัญหาบนแดชบอร์ด Zabbix)

คุณสามารถทำตามขั้นตอนข้างต้นเพื่อเพิ่มชื่อโดเมนทั้งหมด (ในแท็บโฮสต์) ซึ่งมีวันหมดอายุที่คุณต้องการตรวจสอบ

บทความที่เกี่ยวข้อง