Files
zabbix-mailcert-check/README.md

124 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.