VDS-Server per SSH verbinden: PuTTY, Terminal & Schlüssel
SSH-Verbindung zum Linux VDS-Server: PuTTY, Terminal, schlüsselbasierte Authentifizierung, Path Panel Firewall-Regel und Sicherheitstipps für Einsteiger.
Wichtige Log-Speicherorte, logrotate-Konfiguration, journald-Größenlimits, große Log-Dateien finden und Log-Analyse-Grundlagen. Anleitung zur Vermeidung voller Festplatten auf Linux-Servern.
Log-Dateien sind unverzichtbar für die Diagnose von Systemproblemen und die Überwachung von Sicherheitsereignissen. Wenn sie jedoch nicht verwaltet werden, können sie den Festplattenspeicher füllen und Systemabstürze verursachen. Diese Anleitung behandelt wichtige Log-Speicherorte, logrotate-Konfiguration, journald-Größenverwaltung und das Auffinden großer Log-Dateien.
# Hauptverzeichnis für System-Logs
ls -lh /var/log/
# Wichtige Log-Dateien:
# /var/log/syslog — Allgemeine Systemmeldungen (Debian/Ubuntu)
# /var/log/messages — Allgemeine Systemmeldungen (RHEL/CentOS)
# /var/log/auth.log — Authentifizierungslogs (Debian/Ubuntu)
# /var/log/secure — Authentifizierungslogs (RHEL/CentOS)
# /var/log/kern.log — Kernel-Meldungen
# /var/log/cron — Cron-Job-Logs
# /var/log/mail.log — Mail-Server-Logs
# Webserver-Logs
/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/apache2/access.log
/var/log/apache2/error.log
# Datenbank-Logs
/var/log/mysql/error.log
/var/log/postgresql/
# Echtzeit-Log-Überwachung
tail -f /var/log/syslog
tail -f /var/log/nginx/access.log
# Letzte 100 Zeilen
tail -n 100 /var/log/auth.log
# Nach bestimmtem Schlüsselwort suchen
grep "ERROR" /var/log/nginx/error.log
grep "Failed password" /var/log/auth.log
# In mehreren Dateien suchen
grep -r "error" /var/log/nginx/
# Größte Dateien unter /var/log finden
du -sh /var/log/* | sort -rh | head -20
# Große Dateien im gesamten System finden (100MB+)
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null
# Dateien größer als 50MB unter /var/log
find /var/log -type f -size +50M -exec ls -lh {} \;
# Festplattennutzung prüfen
df -h
# Verzeichnisgrößen anzeigen
du -sh /var/log/
du -sh /var/log/* | sort -rh
logrotate ist ein Tool, das Log-Dateien automatisch rotiert, komprimiert und löscht.
# logrotate läuft standardmäßig täglich über cron
cat /etc/cron.daily/logrotate
# Manuell ausführen
sudo logrotate /etc/logrotate.conf
# Simulationsmodus (keine echten Operationen)
sudo logrotate --debug /etc/logrotate.conf
# Rotation erzwingen
sudo logrotate --force /etc/logrotate.d/nginx
# Hauptkonfigurationsdatei
sudo nano /etc/logrotate.conf
# Standardeinstellungen
weekly # Wöchentlich rotieren
rotate 4 # 4 alte Versionen behalten
create # Neue Datei nach Rotation erstellen
compress # Alte Logs komprimieren
delaycompress # Zuletzt rotierten Log nicht komprimieren
include /etc/logrotate.d # Anwendungskonfigurationen einschließen
# logrotate-Konfiguration für Nginx
sudo nano /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily # Täglich rotieren
missingok # Kein Fehler wenn Datei fehlt
rotate 14 # 14 Tage Logs behalten
compress # Komprimieren
delaycompress # Neuesten nicht komprimieren
notifempty # Leere Dateien nicht rotieren
create 0640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
sudo nano /etc/logrotate.d/myapp
/var/log/myapp/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 0644 www-data www-data
dateext
dateformat -%Y%m%d
postrotate
systemctl reload myapp 2>/dev/null || true
endscript
}
# Aktuelle Journal-Größe prüfen
journalctl --disk-usage
# Alte Logs bereinigen (älter als 2 Wochen)
sudo journalctl --vacuum-time=2weeks
# Mit Größenlimit bereinigen
sudo journalctl --vacuum-size=500M
# Bestimmte Anzahl Dateien behalten
sudo journalctl --vacuum-files=5
# journald-Konfigurationsdatei bearbeiten
sudo nano /etc/systemd/journald.conf
[Journal]
# Maximale Festplattennutzung
SystemMaxUse=500M
# Minimaler freier Festplattenspeicher
SystemKeepFree=1G
# Maximale Dateigröße
SystemMaxFileSize=50M
# Log-Aufbewahrungszeitraum
MaxRetentionSec=2weeks
# Komprimierung
Compress=yes
# Dauerhafter Speicher
Storage=persistent
# Konfiguration anwenden
sudo systemctl restart systemd-journald
# Nginx-Fehler-Logs analysieren
grep -c "error" /var/log/nginx/error.log
grep "error" /var/log/nginx/error.log | tail -20
# SSH-Brute-Force-Versuche erkennen
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -rn | head -10
# Top-anfragende IPs finden
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
# HTTP-Statuscodes zählen
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
# Fehler aus systemd-Journal filtern
journalctl -p err --since "1 hour ago"
# Schnelle Reaktion bei voller Festplatte
# 1. Festplattenstatus prüfen
df -h
# 2. Größte Dateien finden
du -sh /var/log/* | sort -rh | head -10
# 3. Alte Journal-Logs bereinigen
sudo journalctl --vacuum-time=3days
# 4. Unkomprimierte alte Logs komprimieren
find /var/log -name "*.log.*" ! -name "*.gz" -exec gzip {} \;
# 5. logrotate erzwingen
sudo logrotate --force /etc/logrotate.conf
# 6. Paket-Cache bereinigen
sudo apt clean # Ubuntu/Debian
sudo dnf clean all # RHEL/CentOS
Automatisieren Sie die Log-Verwaltung: Überprüfen Sie regelmäßig die logrotate-Konfiguration, setzen Sie journald-Größenlimits und richten Sie Alerts zur Überwachung der Festplattennutzung ein.
Effektive Log-Verwaltung verhindert Probleme mit voller Festplatte und verbessert die Systemzuverlässigkeit. Mit automatischer logrotate-Rotation, journald-Größenlimits und regelmäßiger Log-Analyse können Sie Ihre REXE-Server gesund halten.
logrotate läuft standardmäßig täglich über das Skript in /etc/cron.daily/. Jede Anwendung kann jedoch in ihrer eigenen Konfiguration eine andere Häufigkeit angeben (täglich, wöchentlich, monatlich). Sie können simulieren, wann es läuft mit 'sudo logrotate --debug /etc/logrotate.conf'.
Prüfen Sie zuerst den Festplattenstatus mit 'df -h' und große Log-Dateien mit 'du -sh /var/log/* | sort -rh'. Bereinigen Sie dann alte Journal-Logs mit 'sudo journalctl --vacuum-time=3days'. Erzwingen Sie logrotate mit 'sudo logrotate --force /etc/logrotate.conf'.
journald-Logs werden in /run/log/journal/ (temporär, im RAM) oder /var/lib/systemd/journal/ (dauerhaft, auf Festplatte) gespeichert. Sie können dauerhaften Speicher mit 'Storage=persistent' in /etc/systemd/journald.conf aktivieren.
Verwenden Sie 'sudo logrotate --debug /etc/logrotate.d/nginx', um die Konfiguration zu simulieren. Dies zeigt, was passieren würde, ohne echte Operationen durchzuführen. Verwenden Sie '--force', um die tatsächliche Rotation zu erzwingen.
Prüfen Sie zuerst den Log-Level: DEBUG-Level produziert zu viele Logs, verwenden Sie in der Produktion INFO oder WARNING. Setzen Sie in der logrotate-Konfiguration 'daily' und 'rotate 7' für tägliche Rotation und 7-tägige Aufbewahrung. Sie können auch 'size 100M' für größenbasierte Rotation hinzufügen.
SSH-Verbindung zum Linux VDS-Server: PuTTY, Terminal, schlüsselbasierte Authentifizierung, Path Panel Firewall-Regel und Sicherheitstipps für Einsteiger.
Schritt-für-Schritt-Anleitung zur RDP-Verbindung mit Windows Server VDS: Einrichtung, NLA-Sicherheit, Path Panel Firewall-Regel und Fehlerbehebung.
Betriebssystemwechsel am VDS-Server über das REXE-Panel: Backup-Tipps, unterstützte Linux-Distributionen und Windows Server Versionen im Überblick.