Logrotatie

Logrotatie is het automatisch archiveren en verwijderen van oude logbestanden om te voorkomen dat ze de schijf vullen. Het standaard hulpmiddel hiervoor op Linux is logrotate.

Hoe het werkt

logrotate draait dagelijks via cron of een systemd-timer. Het controleert de configuratie en roteert bestanden die aan de criteria voldoen:

  1. Huidig logbestand hernoemen naar syslog.1 (of met datum)
  2. Nieuw leeg logbestand aanmaken
  3. Oude bestanden comprimeren (syslog.2.gz, syslog.3.gz, …)
  4. Bestanden ouder dan de ingestelde limiet verwijderen

Configuratie

Globale instellingen in /etc/logrotate.conf, per dienst in /etc/logrotate.d/:

/var/log/nginx/*.log {
    daily           # dagelijks roteren
    missingok       # geen fout als bestand ontbreekt
    rotate 14       # 14 versies bewaren
    compress        # gzip-compressie
    delaycompress   # pas comprimeren na de volgende rotatie
    notifempty      # niet roteren als bestand leeg is
    postrotate
        nginx -s reopen    # nginx laten weten dat het nieuwe bestand is
    endscript
}

Handmatig uitvoeren

logrotate -d /etc/logrotate.conf    # droog draaien, niks aanpassen
logrotate -f /etc/logrotate.conf    # forceer rotatie nu

Zie ook

linuxloggingsysteembeheer