Files
zabbix-mailcert-check/README.md

124 lines
4.1 KiB
Markdown
Raw Permalink Normal View History

2025-07-26 10:34:26 +02:00
# 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:
```bash
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:
```bash
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:
```yaml
{$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](assets/image-20250723220013360.png)
![image-20250726093817364](assets/image-20250726093817364.png)
## 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.