Site icon bintorosoft.com

Logrotate für Webserver: Logs verwalten ohne Festplatte zu füllen

Close up human hand is playing Online Game computer using keyboard in home

Die Verwaltung von Logdateien ist essenziell für den stabilen Betrieb von Webservern. Ohne ein automatisches Rotations- und Löschsystem können Access Logs und Error Logs schnell die Festplatte füllen, was zu Ausfällen oder Performanceproblemen führen kann. Mit logrotate lassen sich Logs automatisch archivieren, komprimieren und löschen. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers Schritt für Schritt, wie logrotate für Webserver eingerichtet und optimiert wird.

Grundlagen von Logrotate

logrotate ist ein Linux-Dienst, der automatisch Logdateien rotiert, archiviert, komprimiert und bei Bedarf löscht. Er arbeitet über Konfigurationsdateien, die entweder global oder pro Service definiert werden.

Installation und Konfiguration

Die meisten Linux-Distributionen liefern logrotate bereits vorinstalliert. Andernfalls kann es über die Paketverwaltung installiert werden.

Ubuntu/Debian

sudo apt install logrotate -y

CentOS/RHEL

sudo yum install logrotate -y

Globale Konfiguration

Die globale Konfigurationsdatei befindet sich in /etc/logrotate.conf. Hier können Standardwerte für alle Logs definiert werden.

Beispiel globale Einstellungen

/etc/logrotate.conf

Rotation täglich

daily

Alte Logs maximal 14 Tage aufbewahren

rotate 14

Alte Logs komprimieren

compress

Nicht existierende Logs ignorieren

missingok

Systemweite Post-rotate Skripte

notifempty
create 640 root adm
include /etc/logrotate.d

Service-spezifische Konfiguration

Jeder Webserver (Apache, Nginx, PHP) kann eigene Logrotate-Konfigurationen haben, üblicherweise im Verzeichnis /etc/logrotate.d/.

Apache Beispiel

sudo nano /etc/logrotate.d/apache2
/var/log/apache2/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        if systemctl status apache2 > /dev/null ; then
            systemctl reload apache2 >/dev/null
        fi
    endscript
}

Nginx Beispiel

/var/log/nginx/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 www-data adm
    sharedscripts
    postrotate
        if systemctl status nginx > /dev/null ; then
            systemctl reload nginx >/dev/null
        fi
    endscript
}

PHP-FPM Beispiel

/var/log/php/*.log {
    weekly
    missingok
    rotate 8
    compress
    delaycompress
    notifempty
    create 640 www-data adm
    sharedscripts
    postrotate
        systemctl reload php8.1-fpm >/dev/null
    endscript
}

Parameter im Detail

Logrotate testen

Um zu prüfen, ob die Konfiguration korrekt funktioniert, kann ein Testlauf durchgeführt werden.

sudo logrotate -d /etc/logrotate.conf

Der Parameter -d führt einen Debuglauf aus, ohne die Logs tatsächlich zu rotieren.

Rotation manuell auslösen

sudo logrotate -f /etc/logrotate.conf

Der Parameter -f erzwingt eine Rotation, auch wenn die Zeitkriterien noch nicht erreicht sind.

Monitoring und Fehlerbehebung

Logs sollten regelmäßig überwacht werden, um sicherzustellen, dass Rotationen korrekt durchgeführt werden und keine Festplatte überläuft.

Disk-Space prüfen

df -h
du -sh /var/log/apache2
du -sh /var/log/nginx

Logrotate Status prüfen

cat /var/lib/logrotate/status

Best Practices

Netzwerk und Subnetze

Die Netzwerkarchitektur beeinflusst die Log-Analyse, insbesondere bei mehreren Webservern oder Load Balancern. Korrekte IPs und Subnetze erleichtern die Filterung und Korrelation von Logs.

Subnetzberechnung

Beispiel: Server-IP 192.168.110.25/24

<math>
Subnetzadresse = 192.168.110.25 & 255.255.255.0 = 192.168.110.0
Broadcastadresse = 192.168.110.0 | ~255.255.255.0 = 192.168.110.255
</math>

Netzwerkinterface konfigurieren

sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.110.25/24
      gateway4: 192.168.110.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version