Παρακολούθηση ημερομηνίας λήξης ονόματος τομέα με Zabbix

Αυτό το άρθρο παρέχει μια λεπτομερή επισκόπηση του τρόπου διαμόρφωσης της παρακολούθησης των ημερομηνιών λήξης των ονομάτων τομέα σας στο Zabbix. Αυτό θα σας αποτρέψει από το να χάσετε τις ημερομηνίες ανανέωσης και λήξης (λήξη ανάθεσης) των ονομάτων τομέα σας.

Εάν ο προηγούμενος κάτοχος δεν πληρώσει για το όνομα τομέα εντός 30 ημερών από τη λήξη της περιόδου εγγραφής, ο τομέας θα λήξει (η κατάστασή του θα αλλάξει σε NotDelegated). Ας δούμε ένα απλό σενάριο bash και ένα πρότυπο Zabbix που σας επιτρέπουν να ελέγχετε και να παρακολουθείτε την ημερομηνία λήξης του ονόματος τομέα.

Υποθέτουμε ότι έχετε ήδη εγκατεστημένο διακομιστή Zabbix. Θα χρησιμοποιήσουμε ένα μικρό σενάριο bash για να λάβουμε τις πληροφορίες ανάθεσης τομέα από τον καταχωρητή. Για να λειτουργήσει αυτό το σενάριο, πρέπει να έχετε εγκατεστημένο το βοηθητικό πρόγραμμα whois στον κεντρικό υπολογιστή σας Linux.

  • CentOS/RHEL/Rocky Linux:$ sudo dnf install whois -y
  • Ubuntu/Debian:$ 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 woshub.com

Στο παράδειγμά μου, το σενάριο επέστρεψε ότι υπήρχαν 532 ημέρες μέχρι την ημερομηνία λήξης του τομέα.

Τώρα πρέπει να επιτρέψουμε στον παράγοντα Zabbix να εκτελέσει αυτό το προσαρμοσμένο σενάριο χρησιμοποιώντας την παράμετρο UserParameter.

$ sudo mcedit /etc/zabbix/zabbix_agentd.conf

Προσθέστε την ακόλουθη γραμμή:

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

Αυτή η επιλογή σάς επιτρέπει να εκτελέσετε ένα συγκεκριμένο εξωτερικό σενάριο μέσω του Zabbix Agent. Πρέπει να χρησιμοποιήσετε τολήγει ο τομέαςπαράμετρος για να καλέσετε αυτό το σενάριο από το 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[woshub.com]

Εάν έχετε ρυθμίσει τα πάντα σωστά, η εντολή θα πρέπει να επιστρέψει τον αριθμό των ημερών πριν από τη λήξη της εγγραφής τομέα.

Τώρα προσθέστε ένα νέοCheckDomainExpirationπρότυπο για την παρακολούθηση της ημερομηνίας λήξης του τομέα στο Zabbix.

Στην καρτέλα στοιχεία, προσθέστε την παράμετρο:

  • Όνομα: χρόνος λήξης τομέα{$DOMAINNAME}
  • Τύπος: Πράκτορας Zabbix
  • Κλειδί:domainexpire[{$DOMAINNAME}]
  • Είδος πληροφοριών: Αριθμητικό (ανυπόγραφο)
  • Διάστημα ενημέρωσης: 1δ
  • Ιστορία: 90d
  • Trenfd: 365d

Τώρα προσθέστε έναν νέο κανόνα ετικέτας:

  • Όνομα: Το όνομα τομέα {$DOMAINNAME} θα λήξει
  • Εκφραση:last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])<39
  • Σοβαρότητα: Υψηλή

Αυτό θα ενεργοποιηθεί εάν υπάρχουν λιγότερες από 39 ημέρες πριν από τη λήξη της εγγραφής τομέα.

Προαιρετικά, μπορείτε επίσης να προσθέσετε ένα κανόνα για ανάκτηση:

Έκφραση ανάκτησης:last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])>=40

Προσθέστε έναν νέο κεντρικό υπολογιστή στο Zabbix για το όνομα τομέα σας με τοΔιεπαφή πράκτορατύπος.

Στην καρτέλα Μακροεντολές, καθορίστε το όνομα του τομέα του οποίου η ημερομηνία λήξης θέλετε να παρακολουθήσετε:

  • Μακροεντολή:{$DOMAINNAME}
  • Αξία:woshub.com

Τέλος, αντιστοιχίστε το πρότυπο CheckDomainExpiration που δημιουργήσατε νωρίτερα στον κεντρικό υπολογιστή.

Αυτό το πρότυπο ελέγχει την ημερομηνία εγγραφής τομέα μία φορά την ημέρα. Για να λάβετε αμέσως τα δεδομένα whois, βρείτε την απαιτούμενη παράμετρο στην καρτέλα κεντρικού υπολογιστή και κάντε κλικΕκτελέστε τώρα.

Μεταβείτε στο Monitoring -> Latest Data. Το Zabbix δείχνει ότι το όνομα τομέα θα λήξει σε 532 ημέρες.

Μπορείτε να ρυθμίσετε αυτό το έναυσμα ώστε να στέλνει μια ειδοποίηση στο e-mail ή στην αγαπημένη σας εφαρμογή ανταλλαγής μηνυμάτων (ή να εμφανίζει το πρόβλημα στον πίνακα εργαλείων Zabbix).

Μπορείτε να ακολουθήσετε τα παραπάνω βήματα για να προσθέσετε όλα τα ονόματα τομέα (στην καρτέλα Hosts) των οποίων τις ημερομηνίες λήξης θέλετε να παρακολουθήσετε.

Related Posts