Wenn man eine über DNSSEC gesicherte Zone betreibt, kennt man das Problem vielleicht: Man hat die Zone signiert, aber man vergisst nach den 30 Tagen eine neue Signatur zu erzeugen.

Ich habe mir dafür inzwischen einen Cronjob angelegt, der in regelmäßigen Abständen die Zone neu generiert. Aber es ist doch sinnvoll über Zabbix die Zonen zu überwachen, damit keine Domäne aus dem Raster fällt.

Ich habe dazu check-rrsig geschrieben, welches das Ablaufdatum der Signatur überprüft. Das Skript verlangt als Parameter einen Hostnamen, optional kann man noch einen anderen Resolver als der aus /etc/resolv.conf angeben und Debugmeldungen einschalten. Als erster Schritt wird zuerst der Hostname validiert, dazu verwende ich die Bibliothek Respect\Validation. Danach finde ich den Namensserver heraus, der den Hostnamen zu Verfügung stellt und frage diesen, über die Bibliothek net_dns2 direkt ab, da ich etwaige Caches umgehe, weil ich ja einen möglichst realistischen Wert haben will. Dann frage ich von dem Original den ersten RRSIG-Record ab und extrahiere bei diesem den Ablaufzeitpunkt. Dann bilde ich noch den Unterschied zwischen dem aktuellen Datum und dem Ablaufdatum, gebe es zurück und bin fertig.

Die Integration in Zabbix ist damit relativ einfach. Man schafft die phar-Datei auf dem Zabbix-Server nach /etc/zabbix/externalscripts. Nun kann mann ein Item entweder in einem Host oder in einem Template erstellen und das Skript über einen External Check abrufen und Werte erfassen lassen.