Mailserver Terminator
IT-Systemdokumentation
Mailcow mit zentralem Logging via Grafana / Loki / Promtail (UDP)
1. Übersicht & Zweck
Das System betreibt eine Mailserver-Umgebung auf Basis Mailcow für den Versand von Rechnungen und Lohnabrechnungen. Aufgrund der hohen Versandmenge ist die lückenlose Nachvollziehbarkeit von Zustellungen, Fehlern und Trends erforderlich. Zentralisierte Logs werden per UDP an Promtail geleitet, in Loki gespeichert und in Grafana visualisiert. Grafana ist ohne VPN erreichbar (öffentlicher Zugriff mit Härtung).
2. Hosting & Serverressourcen
| Anbieter |
Webtropia (DE, ISO-27001 RZ) |
| CPU |
4 Kerne |
| RAM |
8 GB |
| Storage |
80 GB NVMe |
| Rolle |
Mailserver + Logging-Stack |
3. Architektur & Datenfluss
- Mailcow (Postfix, Dovecot, Rspamd) erzeugt Versand- und Statuslogs.
- Promtail empfängt Logs per UDP (Syslog), labelt und pusht an Loki (HTTP).
- Loki speichert Logs zeitbasiert und stellt Abfragen bereit.
- Grafana visualisiert Kennzahlen & Status (Dashboards, Explore).
4. Verzeichnisse & Dateien
/opt/mailcow-dockerized |
Mailcow Docker-Umgebung |
/opt/mailcow-dockerized/docker-compose.override.yml |
Enthält UDP-Weiterleitung der Mailcow-Logs zu Promtail |
/opt/obs-mail |
Promtail, Loki, Grafana (Stack) |
/opt/obs-mail/loki_config.yml |
Loki-Spezifikationen (Speicher, Index, Retention) |
5. Netzwerk & Ports
| Dienst |
Port/Proto |
Zugriff |
Hinweis |
| Mailcow Web-UI |
443/TCP |
Intern |
TLS |
| Promtail Syslog |
1514/UDP |
Nur intern |
Eingang der Logs |
| Loki API |
3100/TCP |
Intern |
Push/Query |
| Grafana UI |
3000/TCP |
Öffentlich |
Härtung beachten (siehe §11) |
6. Logging- & Monitoring-Konzept
- Mailcow erzeugt Versand-/Status-/Fehlerlogs.
- Weiterleitung per UDP → Promtail (Definition in
docker-compose.override.yml).
- Promtail labelt, normalisiert und pusht via HTTP an Loki.
- Loki speichert zeitbasiert und bedient Abfragen.
- Grafana visualisiert (Dashboards, Explore, Alarme optional).
7. Mail-Status & Auswertung
| sent |
E-Mail erfolgreich versendet |
| deferred |
Zustellung verzögert (Zielserver nicht erreichbar o.Ä.) |
| bounced |
Zustellung fehlgeschlagen (Adresse ungültig, Mailbox voll) |
| rejected |
Abgelehnt (Policy/SPAM-Gründe) |
Zur Nachvollziehbarkeit von Massenversand (Rechnungen/Lohnabrechnungen) stehen in Grafana Übersichten und Detailabfragen bereit.
8. Aufbewahrung & Compliance
- Logs in Loki: Aufbewahrung 120 Tage, danach automatische Löschung.
- Dashboards in Grafana: persistent in Volumes, keine automatische Löschung.
9. Zugangsdaten & Passbolt
Sämtliche Zugangsdaten (Mailcow, Grafana, Server/Webtropia) werden ausschließlich in Passbolt verwaltet.
- Passbolt-Instanz: [Passbolt-URL eintragen]
- Zugriff nur für autorisierte Administratoren (Rollenbasiert).
- Keine Klartext-Passwörter in BookStack oder Konfigurationsdateien.
10. Betrieb, Aufgaben & Verantwortlichkeiten
| Intervall |
Aufgabe |
Rolle |
| Täglich |
Grafana prüfen (Fehler, Ausreißer, Zustellquote) |
Monitoring-Team |
| Wöchentlich |
Testmail mit Status-Kontrolle |
Sysadmin |
| Monatlich |
Updates (Mailcow, Promtail, Loki, Grafana) |
Sysadmin |
| Quartalsweise |
Security-Review, Passwortrotation, IP-Whitelists prüfen |
Security Officer |
11. Sicherheitsmaßnahmen
- Grafana öffentlich: HTTPS erzwingen, starke Passwörter, individuelle Konten, optional IP-Whitelisting/Rate-Limiting.
- Promtail (UDP 1514): nur intern freigeben.
- Least Privilege: Rollen & Rechte regelmäßig prüfen.
- Protokollprüfung: Zugriffslogs von Grafana & Reverse-Proxy regelmäßig auswerten.
12. Backup & Wiederherstellung
- Relevante Pfade:
/opt/mailcow-dockerized
/opt/obs-mail
/opt/obs-mail/loki_config.yml
- Tägliche, verschlüsselte Backups; Restore-Test mindestens quartalsweise.
13. Änderungs- & Versionskontrolle
- Konfigurationsdateien (
docker-compose.override.yml, loki_config.yml) in Git versionieren.
- Change-Log mit Datum, Verantwortlichem, Kurzbeschreibung.
14. Anhang
14.1 ASCII-Architekturdiagramm
Mailcow (Postfix, Dovecot, Rspamd)
│
│ UDP 1514
▼
Promtail ──HTTP Push──> Loki ──API──> Grafana (öffentlich, HTTPS)
14.2 Beispielpfade (Referenz)
/opt/mailcow-dockerized/
└── docker-compose.override.yml # enthält UDP-Weiterleitung zu Promtail
/opt/obs-mail/
└── loki_config.yml # Loki-Spezifikationen (Index, Storage, Retention)
Hinweis: Zugangsdaten sind in Passbolt hinterlegt (siehe Abschnitt 9). Logs werden 120 Tage vorgehalten.
No Comments