Autom. Versand von Log-Dateien per Email

Aus Xinux Wiki
Version vom 16. März 2025, 08:48 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Hier sind einige Punkte, die du in deinem MediaWiki-Artikel zum automatischen Versand von Log-Dateien per E-Mail aufnehmen kannst: === Einleitung === Das au…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Hier sind einige Punkte, die du in deinem MediaWiki-Artikel zum automatischen Versand von Log-Dateien per E-Mail aufnehmen kannst:

Einleitung

Das automatische Versenden von Log-Dateien per E-Mail kann in vielen Szenarien nützlich sein, z. B. zur Überwachung von Systemen, zur Fehleranalyse oder zur Benachrichtigung über kritische Ereignisse. Postfix kann in Kombination mit Skripten genutzt werden, um regelmäßig Log-Dateien oder spezifische Log-Einträge an Administratoren zu senden.

Anforderungen

  • Ein funktionierender Mailserver, z. B. Postfix oder Exim
  • Ein Skript zur Verarbeitung und Versendung der Logs
  • Ein Cronjob oder systemd-Timer zur regelmäßigen Ausführung

Methoden zum Versand von Log-Dateien

Versand kompletter Log-Dateien

Falls komplette Log-Dateien regelmäßig per E-Mail versendet werden sollen, kann ein einfaches Skript genutzt werden:

#!/bin/bash
LOGDATEI="/var/log/syslog"
MAILADRESSE="admin@example.com"
SUBJECT="Logfile vom $(hostname) - $(date)"

cat "$LOGDATEI" | mail -s "$SUBJECT" "$MAILADRESSE"
  • Die Datei `/var/log/syslog` wird per `mail`-Befehl versendet.
  • Der Betreff enthält den Hostnamen und das aktuelle Datum.
  • Voraussetzung: Ein MTA (Mail Transfer Agent) wie Postfix muss eingerichtet sein.

Versand von Log-Auszügen mit Filtern

Falls nur relevante Zeilen aus einer Log-Datei versendet werden sollen, kann `grep` oder `awk` verwendet werden:

#!/bin/bash
LOGDATEI="/var/log/auth.log"
MAILADRESSE="admin@example.com"
SUBJECT="Fehlgeschlagene Login-Versuche - $(hostname)"

grep "Failed password" "$LOGDATEI" | mail -s "$SUBJECT" "$MAILADRESSE"
  • In diesem Beispiel werden nur fehlgeschlagene Login-Versuche aus `auth.log` versendet.
  • Es können weitere Filter, z. B. für bestimmte Nutzer oder IP-Adressen, hinzugefügt werden.

Komprimierung großer Log-Dateien vor Versand

Falls die Logs sehr groß sind, kann die Datei vor dem Versand komprimiert werden:

#!/bin/bash
LOGDATEI="/var/log/syslog"
ZIPFILE="/tmp/syslog-$(date +%Y-%m-%d).gz"
MAILADRESSE="admin@example.com"
SUBJECT="Logfile (komprimiert) vom $(hostname)"

gzip -c "$LOGDATEI" > "$ZIPFILE"
echo "Anbei die komprimierte Log-Datei" | mutt -s "$SUBJECT" -a "$ZIPFILE" -- "$MAILADRESSE"
  • Die Datei wird mit `gzip` komprimiert und mit `mutt` als Anhang versendet.
  • Nützlich für große Log-Dateien, um die E-Mail-Größe zu reduzieren.

Automatisierung mit Cron

Damit der Versand regelmäßig erfolgt, kann ein Cronjob eingerichtet werden:

0 6 * * * /path/to/logversand.sh
  • Führt das Skript täglich um 06:00 Uhr aus.
  • Die Log-Dateien werden automatisch per E-Mail versendet.

Automatisierung mit systemd-Timer

Alternativ kann ein systemd-Timer verwendet werden:

Service-Definition (/etc/systemd/system/logversand.service)

[Unit]
Description=Versand der Log-Dateien per E-Mail

[Service]
ExecStart=/path/to/logversand.sh

Timer-Definition (/etc/systemd/system/logversand.timer)

[Unit]
Description=Logversand Timer

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

Nach der Erstellung wird der Timer aktiviert:

systemctl enable --now logversand.timer

Sicherheitshinweise

  • Log-Dateien können sensible Informationen enthalten. Sie sollten nicht unverschlüsselt über unsichere Kanäle versendet werden.
  • Falls externe Mailserver verwendet werden, sollte SMTP mit Authentifizierung und TLS genutzt werden.
  • Alternativ kann die Log-Datei mit `gpg` verschlüsselt und nur an vertrauenswürdige Empfänger versendet werden.

Falls du Ergänzungen möchtest, sag Bescheid!