Zabbix Template TLS-Zertifikatüberwachung für Mail- und Webdienste

Dieses Zabbix-Template ermöglicht eine umfassende Überwachung von TLS-Zertifikaten, die für Webserver (HTTPS) sowie E-Mail-Dienste wie SMTP und IMAP verwendet werden. Es überprüft automatisch die Gültigkeit der Zertifikate, erkennt abgelaufene oder ungültige Zertifikate und gibt rechtzeitig Warnungen aus, bevor ein Zertifikat abläuft.

Funktionen

Das Template bietet eine Vielzahl nützlicher Funktionen zur Zertifikatsüberwachung:

  • Automatische Prüfung der TLS-Zertifikatsgültigkeit (gültig oder ungültig)
  • Frühzeitige Benachrichtigung, wenn ein Zertifikat kurz vor dem Ablauf steht
  • Unterstützung mehrerer Protokolle, darunter HTTPS, SMTP und IMAP
  • Integration von Triggern für unterschiedliche Zustände, wie z.B. abgelaufene oder bald ablaufende Zertifikate
  • Konfigurierbare Schwellenwerte und Parameter mithilfe von Makros auf Host-Ebene
  • Unterstützung moderner TLS-Funktionen wie STARTTLS, Server Name Indication (SNI) und benutzerdefinierbarer Verbindungszeitüberschreitungen (Timeouts)

Aufbau und enthaltene Dateien

Das Paket besteht aus folgenden zentralen Komponenten:

  • templatemailcert_check.xml: Das eigentliche Zabbix-Template, das über das Webinterface importiert wird.
  • userparameters_mailcert_check.conf: Konfigurationsdatei für den Zabbix-Agent, welche benutzerdefinierte Prüfbefehle bereitstellt.
  • mailcert_check.sh: Ein Bash-Skript, das die Zertifikatsinformationen abfragt und verarbeitet.

Installationsanleitung

Schritt 1: Skript installieren

Kopiere das Bash-Skript in ein geeignetes Verzeichnis auf dem Zielsystem und mache es ausführbar:

sudo cp mailcert_check.sh /usr/local/bin/
sudo chmod +x /usr/local/bin/mailcert_check.sh

Schritt 2: Zabbix-Agent konfigurieren

Die Datei mit den benutzerdefinierten Parametern muss in das Konfigurationsverzeichnis des Zabbix-Agenten kopiert werden. Anschließend ist ein Neustart des Agenten erforderlich:

sudo cp userparameters_mailcert_check.conf /etc/zabbix/zabbix_agentd.d/
sudo systemctl restart zabbix-agent

Schritt 3: Template in Zabbix importieren

  1. Melde dich im Zabbix-Frontend an.
  2. Navigiere zu Configuration → Templates.
  3. Klicke auf Import.
  4. Wähle die Datei template_mailcert_check.xml aus und lade sie hoch.
  5. Bestätige den Import.

Schritt 4: Template einem Host zuweisen

  1. Öffne im Zabbix-Frontend den gewünschten Host.
  2. Gehe zum Reiter Templates.
  3. Füge das Template Template Mail Certificate Monitoring hinzu.
  4. Speichere die Änderungen.

Konfiguration über Makros

Auf Host-Ebene lassen sich mithilfe von Makros die zu überwachenden Ziele und Parameter definieren. Hier ein Beispiel für die SMTP-Zertifikatsüberwachung:

{$TLS_SMTP_DOMAIN}         = mail.example.com
{$TLS_SMTP_PORT}           = 587
{$TLS_SMTP_STARTTLS}       = smtp
{$TLS_SMTP_SNI}            = mail.example.com
{$TLS_SMTP_TIMEOUT}        = 10
{$TLS_SMTP_UPDATEINTERVAL} = 3600
{$TLS_SMTP_EXPIRESWITHIN}  = 14

Diese Makros ermöglichen eine flexible und gezielte Konfiguration pro Host.

Beispielhafte Darstellung in Zabbix

Nach erfolgreicher Einrichtung werden im Zabbix-Frontend automatisch Items und Trigger erstellt. Dazu zählen unter anderem:

  • Einträge zur Restlaufzeit (in Tagen) eines Zertifikats
  • Statusmeldungen zu ungültigen oder bald ablaufenden Zertifikaten
  • Trigger, die bei Erreichen der definierten Schwellenwerte Warnungen auslösen

image-20250723220013360

image-20250726093817364

Manueller Test des Prüfskripts

Zur Überprüfung der Skriptfunktionalität kann ein manueller Aufruf wie folgt erfolgen:

/usr/local/bin/mailcert_check.sh expire mail.example.com 587/smtp mail.example.com 10

Dabei werden Domain, Port, Protokoll, SNI und Timeout übergeben.

Kompatibilität

  • Unterstützt wird Zabbix ab Version 6.4
  • Abhängigkeiten: bash, openssl

Lizenz

Dieses Projekt steht unter der MIT-Lizenz und kann frei verwendet, modifiziert und verteilt werden.

Description
Zabbix-Plugin zur TLS-Zertifikatsüberwachung für Mailserver & Webmailer - mit SMTP, IMAP, HTTPS, STARTTLS und flexibler Konfiguration direkt im Template.
Readme 175 KiB
Languages
Shell 100%