No description
Find a file
2026-06-16 13:25:42 +00:00
ANLEITUNG.md Dateien nach „/“ hochladen 2026-06-16 13:25:01 +00:00
logwatch-doctor.sh Dateien nach „/“ hochladen 2026-06-16 13:25:42 +00:00
README.md Dateien nach „/“ hochladen 2026-06-16 13:25:16 +00:00
VERSION Dateien nach „/“ hochladen 2026-06-16 13:25:31 +00:00

Logwatch Doctor

logwatch-doctor.sh ist ein kleines Bash-Tool fuer Debian/Ubuntu-Server. Es hilft dabei zu erkennen, ob Logs voll laufen, welche Dateien viel Speicherplatz belegen und ob bekannte Log-Fluten auftreten.

Standardmaessig arbeitet das Tool nur lesend. Erst mit --fix werden vorsichtige Aufraeumaktionen angeboten.

Typische Einsatzfaelle

  • /var/log/syslog oder /var/log/syslog.1 ist sehr gross.
  • Caddy schreibt Debug- oder Access-Logs in den Syslog.
  • UFW erzeugt viele [UFW BLOCK]-Eintraege.
  • Das systemd Journal belegt viel Speicherplatz.
  • Du willst schnell sehen, welche Logdateien auf einem Server auffaellig gross sind.

Voraussetzungen

  • Debian oder Ubuntu, inklusive Proxmox-Hosts und viele Ubuntu/Debian-VMs oder LXCs
  • Bash
  • root-Rechte, also Ausfuehrung per sudo
  • Standardtools wie find, du, tail, sort, grep, stat

Installation

Archiv entpacken:

unzip logwatch-doctor.zip
cd logwatch-doctor

Script ausfuehrbar machen, falls noetig:

chmod +x logwatch-doctor.sh

Auf einen Server kopieren:

scp logwatch-doctor.sh ubuntu@SERVER:/tmp/
ssh ubuntu@SERVER
sudo /tmp/logwatch-doctor.sh

Optional nach /usr/local/sbin installieren:

sudo install -m 0755 logwatch-doctor.sh /usr/local/sbin/logwatch-doctor
sudo logwatch-doctor

Nutzung

Nur analysieren, keine Aenderungen:

sudo ./logwatch-doctor.sh

Mit kleinerem Schwellwert, zum Beispiel ab 200 MB warnen:

sudo ./logwatch-doctor.sh --threshold-mb 200

Mehr Zeilen fuer Musteranalyse auswerten:

sudo ./logwatch-doctor.sh --top-lines 20000

Vorsichtige Reparatur mit Rueckfragen:

sudo ./logwatch-doctor.sh --fix

Reparatur ohne Rueckfragen:

sudo ./logwatch-doctor.sh --fix --yes

Was der Analysemodus macht

Das Tool zeigt:

  • groesste Pfade unter /var/log
  • einzelne Logdateien groesser als der Schwellwert
  • Top-Wiederholungen aus /var/log/syslog
  • Hinweise auf Caddy-Debug-Logging
  • Hinweise auf Caddy-Access-Logs im Syslog
  • Hinweise auf viele UFW-Block-Eintraege
  • systemd-Journal-Speicherverbrauch
  • aktive Dienste wie Caddy, Nginx, Apache, Docker und Fail2ban, falls vorhanden

Was --fix macht

Mit --fix kann das Tool:

  • grosse rotierte Syslog-Dateien wie /var/log/syslog.1, /var/log/syslog.2.gz usw. nach Rueckfrage loeschen
  • die aktuelle /var/log/syslog nur dann leeren, wenn sie gross ist und bekannte Laerm-Muster erkannt wurden, zum Beispiel Caddy-Debug, Caddy-Access im Syslog oder viele UFW-Blocks

Das Tool aendert aktuell bewusst keine Caddy-Konfiguration automatisch. Stattdessen gibt es Hinweise, welche Stellen geprueft werden sollten.

Caddy-Hinweise

Wenn Caddy Debug-Logs im Syslog auftauchen, pruefe:

sudo grep -Rni "debug\|log" /etc/caddy /etc/systemd/system /lib/systemd/system 2>/dev/null

Ein globaler Debug-Block im Caddyfile sieht oft so aus:

{
    debug
}

Das sollte fuer Normalbetrieb entfernt oder auskommentiert werden:

{
    # debug
}

Ein nacktes log in einer Site schreibt Access-Logs haeufig ins Journal/Syslog:

example.org {
    reverse_proxy 127.0.0.1:7000
    log
}

Besser entweder entfernen:

example.org {
    reverse_proxy 127.0.0.1:7000
}

oder in eine eigene Datei schreiben:

example.org {
    reverse_proxy 127.0.0.1:7000

    log {
        output file /var/log/caddy/example.access.log
        format json
    }
}

Danach pruefen und neu laden:

sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy

Falls Caddy wegen Dateirechten fuer /var/log/caddy/... nicht startet:

sudo mkdir -p /var/log/caddy
sudo chown -R caddy:caddy /var/log/caddy
sudo chmod 750 /var/log/caddy
sudo systemctl restart caddy

UFW-Logging reduzieren

Wenn viele [UFW BLOCK]-Eintraege den Syslog fuellen:

sudo ufw logging low

Oder komplett deaktivieren:

sudo ufw logging off

Journal aufraeumen

Wenn journalctl --disk-usage sehr gross ist:

sudo journalctl --vacuum-size=500M

Optional dauerhaft begrenzen in /etc/systemd/journald.conf:

SystemMaxUse=500M

Danach:

sudo systemctl restart systemd-journald

Sicherheit und Grenzen

  • Analysemodus ist read-only.
  • --fix fragt standardmaessig nach, bevor geloescht oder geleert wird.
  • --yes sollte nur verwendet werden, wenn du die Ausgabe vorher verstanden hast.
  • Das Tool erkennt typische Muster, ersetzt aber keine manuelle Ursachenanalyse.
  • Es repariert keine Anwendungsfehler, sondern hilft beim Erkennen und sicheren Aufraeumen von Log-Folgen.

Schneller Test nach dem Fix

sudo truncate -s 0 /var/log/syslog
watch -n 2 'ls -lh /var/log/syslog; echo; tail -n 8 /var/log/syslog'

Wenn /var/log/syslog danach ruhig bleibt, ist die Log-Flut wahrscheinlich gestoppt.

Lizenz

MIT. Nutze es frei, aber pruefe Fixes auf produktiven Systemen immer bewusst.