Hoe stel je domeinvervalbewaking in Zabbix in?
Het bijhouden van de vervaldatum van domeinen kan behoorlijk frustrerend zijn. Als je er eentje mist, loop je het risico je domein kwijt te raken of extra kosten te moeten betalen. Deze handleiding laat zien hoe je het bijhouden van die cruciale vervaldatums in Zabbix kunt automatiseren. Het is niet ingewikkeld, maar er is wel wat configuratie nodig – voornamelijk scripting en Zabbix-instellingen. Het resultaat? Je krijgt een handige waarschuwing wanneer je domeinen bijna verlopen, waardoor je mogelijk voorkomt dat je onverwacht een domein kwijtraakt.
Normaal gesproken controleer je de vervaldatum handmatig of met behulp van een externe service, maar deze methode helpt om alles automatisch in de gaten te houden. Het is vooral handig als je veel domeinen hebt of het gewoon vervelend vindt om ze allemaal handmatig te controleren. Kort gezegd: je maakt een script dat je registrar om de vervaldatum vraagt met behulp van whois, en vervolgens laat je Zabbix dat script regelmatig uitvoeren, zodat je meldingen krijgt wanneer een domein de vervaldatum nadert. Maar let op: je hebt de whois- utility op je Linux-server nodig en je moet een paar aanpassingen doen in de Zabbix-agentconfiguratie. Perfect? Nee. Praktisch? Absoluut.
Hoe los ik het probleem op met de monitoring van domeinvervaldatum in Zabbix?
Methode 1: Installeer en configureer het whois- hulpprogramma op uw Linux-server.
Dit gedeelte is eenvoudig: als het whois- programma niet is geïnstalleerd, kan je script geen vervaldatumgegevens ophalen. Afhankelijk van je distributie voer je het volgende commando uit:
- CentOS/RHEL/Rocky Linux:
$ sudo dnf install whois -y - Ubuntu/Debian:
$ sudo apt install whois -y
Waarom? Omdat het script whois gebruikt om de registrar te raadplegen. In sommige configuraties, als whois ontbreekt, geeft het script onzin of helemaal niets terug – enorm frustrerend als je meerdere domeinen probeert te monitoren.
Methode 2: Controleer het pad naar externe scripts in Zabbix
Kijk nu naar je zabbix_server.conf. Zoek de regel die ExternalScripts definieert — deze moet verwijzen naar de locatie waar je je script wilt plaatsen. Meestal ziet het er ongeveer zo uit:
ExternalScripts=/usr/lib/zabbix/externalscripts
Als deze regel is uitgeschakeld (uitgecommentarieerd), schakel deze dan in. Als de map niet bestaat, maak deze dan aan:
$ sudo mkdir -p /usr/lib/zabbix/externalscripts
Dit is de plek waar je script moet komen, dus je moet het script daar plaatsen en uitvoerbaar maken.
Methode 3: Maak een bash-script om de vervaldatum van het domein op te halen.
Maak een nieuw bestand aan op [pad naar bestand] /usr/lib/zabbix/externalscripts/domain_expiration.sh. Hier is een korte versie van wat je erin moet zetten:
#!/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}'` # Handle different date formats; might need tweaking depending on registrar if [[ $exdate =~ [0-9]{2}/[0-9]{2}/[0-9]{4} ]]; then # Convert MM/DD/YYYY to YYYY-MM-DD dateparts=(${exdate//\// }) # Split by / exdate="${dateparts[2]}-${dateparts[0]}-${dateparts[1]}" fi expire=$(date -d "$exdate" +%s) today=$(date +%s) leftsec=$(( $expire - $today )) leftdays=$(( $leftsec / 86400 )) echo $leftdays
Omdat verschillende registrars de vervaldatum natuurlijk in verschillende formaten kunnen weergeven, moet u dit gedeelte mogelijk enigszins aanpassen op basis van de WHOIS-output van uw specifieke registrar.
Methode 4: Maak het script uitvoerbaar en test het.
Stel de scriptmachtigingen in:
$ sudo chmod +x /usr/lib/zabbix/externalscripts/domain_expiration.sh
Test het direct met een domeinnaam:
$ /usr/lib/zabbix/externalscripts/domain_expiration.sh example.com
Als alles goed gaat, zou het het aantal dagen tot de vervaldatum moeten weergeven. Zo niet, controleer dan de uitvoer van je whois -opdracht en pas de datumparsing aan. Soms verschillen de uitvoerwaarden van registrars voldoende om valse negatieven of positieven te veroorzaken.
Methode 5: Laat Zabbix je script gebruiken via UserParameter.
Bewerk de Zabbix-agentconfiguratie:
$ sudo vim /etc/zabbix/zabbix_agentd.conf
Voeg deze regel toe en pas het pad indien nodig aan:
UserParameters=domainexpire[*], /usr/lib/zabbix/externalscripts/domain_expiration.sh $1
Hiermee kan Zabbix je script aanroepen met behulp van de sleutel `domainexpire`, waarbij de domeinnaam als parameter wordt doorgegeven.
Methode 6: Herstart de Zabbix-agent en test het ophalen van gegevens.
Start de agent opnieuw op zodat deze de nieuwe configuratie overneemt:
$ sudo systemctl restart zabbix-agent
Voer vervolgens de volgende opdracht uit op uw server om te controleren of Zabbix de gegevens kan ophalen:
$ sudo zabbix_get -s 127.0.0.1 -p 10050 -k domainexpire[woshub.com]
Als alles correct is ingesteld, zou je het aantal dagen tot de vervaldatum moeten zien. Zo niet, controleer dan je script, configuratie en of de agent de juiste machtigingen heeft om scripts uit te voeren.
Methode 7: Monitoring instellen in de Zabbix-gebruikersinterface
Maak in Zabbix een nieuw item aan in een host (of een speciaal sjabloon) met:
- Naam: Vervaldatum domein {$DOMAINNAME}
- Type: Zabbix-agent
- Sleutel:
domainexpire[{$DOMAINNAME}] - Type informatie: Numeriek (zonder teken)
- Update-interval: 1 dag
- Geschiedenis: 90d
- Trend: 365 dagen
Voeg vervolgens een trigger toe, bijvoorbeeld:
- Triggernaam: Domein {$DOMAINNAME} verloopt over
- Uitdrukking:
last(/YourHost/domainexpire[{$DOMAINNAME}])<=39 - Ernstgraad: Hoog
Dit wordt geactiveerd wanneer er minder dan 40 dagen over zijn, zodat u een waarschuwing krijgt voordat het domein daadwerkelijk verloopt. Optionele hersteltrigger:
last(/YourHost/domainexpire[{$DOMAINNAME}])>=40
Ten slotte koppel je deze configuratie aan een host met je domeinnaam, stel je de macro in {$DOMAINNAME}op je daadwerkelijke domein en je bent klaar – of beter gezegd, je wordt gemonitord. Je kunt zelfs e-mailwaarschuwingen of pop-upberichten instellen wanneer de trigger wordt geactiveerd. Dat scheelt een hoop gedoe later.
Samenvatting
- Installeer het whois- hulpprogramma als het ontbreekt.
- Configureer het ExternalScripts- pad in de Zabbix-serverconfiguratie.
- Maak een bash-script om de vervaldatum uit de whois-uitvoer te halen.
- Maak het script uitvoerbaar en test het handmatig.
- Configureer de Zabbix-agent met UserParameter.
- Start de agent opnieuw op en test met
zabbix_get. - Stel in de Zabbix-gebruikersinterface een item en trigger in om de vervaldatum te bewaken.
Samenvatting
Het is best bevredigend als alles eenmaal werkt, omdat je dan continu waarschuwingen krijgt in plaats van op het laatste moment in paniek te raken. Toegegeven, het is een beetje gepriegel met de datumformaten en scriptaanpassingen, afhankelijk van de eigenaardigheden van de registrar, maar als het eenmaal is ingesteld, geeft het een gerust gevoel. Als er iets niet helemaal in orde lijkt, controleer dan handmatig de output van het script en vergelijk deze met de WHOIS-gegevens van je registrar. Soms lost een kleine aanpassing aan de regel voor het parseren van de datum het probleem op. Ik hoop dat dit iemand helpt om verrassingen met zijn domeinen te voorkomen – het heeft in ieder geval voor mij gewerkt.