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







