- Shell 100%
| ANLEITUNG.md | ||
| logwatch-doctor.sh | ||
| README.md | ||
| VERSION | ||
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/syslogoder/var/log/syslog.1ist 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.gzusw. nach Rueckfrage loeschen - die aktuelle
/var/log/syslognur 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.
--fixfragt standardmaessig nach, bevor geloescht oder geleert wird.--yessollte 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.