Wenn man eine über DNSSEC gesicherte Zone betreibt, kenn man das Problem vieleicht: 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 der in regelmäßigen Abständen die Zone neu generiert. Aber es ist doch sinnvoll über Zabbix die Zonen zu überwachen das 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 herraus der den Hostnamen zu Verfügung stellt herraus und frage diesen, über die Bibliothek net_dns2, direkt ab, da ich etwaige Caches umgehe, da 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 und kann dann ein Item entweder in einem Host oder in einem Template über einen External Check das Skript abrufen und Werte erfassen.

Hinweis: Dies ist eine Übersetzung ins deutsche von Zabbix: Postfix statistical graphs using passive checks. Zusätzlich habe ich das Zabbix-Template und das Skript hier noch gespiegelt.

Diese Anleitung hilft bei der Erstellung von passiven Checks. Es gibt dazu ein Skript welches mit logtail und pflogsumm die Postfix Log-Dateien auswertet und in eine Statistik-Datei schreibt. Zum Schluss wird ein UserParameter erstellt, welcher die Daten aus der Statistik-Datei an Zabbix weitergibt.

Vorraussetzungen installieren

Wir müssen pflogsumm und logtail installieren. Bei Debian sieht das so aus:

$ apt-get install pflogsumm logtail

Skript einrichten

Das Skript muss als postfix-zabbix-stats.bash in /usr/local/bin gespeichert werden und als ausführbar (+x) makiert werden.

Danach legt man einen Cronjob für das Skript an, damit es die Statistik-Datei schreiben kann:

*/5 * * * * /usr/local/bin/postfix-zabbix-stats.bash

Zabbix Agent einrichten

In der Datei /etc/zabbix/zabbix_agentd.conf muss man den Wert EnableRemoteCommands auf 1 setzen.

Danach erstellt man eine Datei /etc/zabbix/zabbix_agentd.conf.d/postfix.conf mit folgendem Inhalt:

UserParameter=postfix.pfmailq,mailq | grep -v "Mail queue is empty" | grep -c '^[0-9A-Z]'
UserParameter=postfix[*],/usr/local/bin/postfix-zabbix-stats.bash $1

Agent neustarten und in diesem Kapitel fertig.

Zabbix Template importieren

Nun muss man das Template importieren und dem Host auf dem Postfix läuft zuweisen und schon ist man fertig und bekommt nette Postfix-Statistiken.