Articles

Logrotate instellen op RedHat Linux

Posted on

Logrotate is een hulpprogramma dat is ontworpen voor beheerders die servers beheren die een grote hoeveelheid logbestanden produceren. Het is bedoeld om schijfruimte te besparen en om te voorkomen dat een systeem niet meer reageert door een gebrek aan schijfruimte. Normaal gesproken is een oplossing om dit soort problemen te voorkomen het opzetten van een aparte partitie of logisch volume voor een /var koppelpunt. Logrotate kan echter ook een levensvatbare oplossing zijn voor dit probleem, vooral als het te laat is om alle logs naar een andere partitie te verplaatsen. In dit artikel gaan we het hebben over het gebruik en de configuratie van logrotate op RedHat / CentOS Linux server.

Wat is Logrotate

Logrotate biedt een systeembeheerder de mogelijkheid om alle logbestanden die door het systeem worden geproduceerd systematisch te roteren en te archiveren, waardoor het besturingssysteem minder schijfruimte nodig heeft. Standaard wordt logrotate een keer per dag aangeroepen met een cron scheduler vanaf de lokatie /etc/cron.daily/

# ls /etc/cron.daily/
cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch

Logrotate configureren

Logrotate’s configuratie wordt gedaan door twee aparte configuratiebestanden aan te passen:

  • /etc/logrotate.conf
  • service-specifieke configuratiebestanden die zijn opgeslagen in /etc/logrotate.d/.

Het hoofdbestand logrotate.conf bevat een algemene configuratie. Hier is een standaard logrotate configuratiebestand logrotate.conf:

 1 weekly 2 rotate 4 3 create 4 dateext 5 include /etc/logrotate.d 6 /var/log/wtmp { 7 monthly 8 create 0664 root utmp 9 minsize 1M 10 rotate 1 11 }
  • Lijn 1 – wekelijkse configuratieoptie zorgt voor een wekelijkse rotatie van alle logbestanden die in het hoofdconfiguratiebestand en in de map /etc/logrotate.d/ zijn gedefinieerd.
  • Line 2 – rotate 4 zorgt ervoor dat logrotate een backup van 4 weken maakt van alle logbestanden
  • Line 3 – create optie zorgt ervoor dat logrotate na elke rotatie nieuwe lege logbestanden aanmaakt
  • Line 4 – dateext voegt een extensie toe aan alle geroteerde logbestanden in de vorm van de datum waarop elk specifiek logbestand door logrotate is verwerkt
  • Line 5 – include all other configuration from directory /etc/logrotate.d
  • Lijn 6 – 11 bevat een specifieke service log rotate configuratie

In tegenstelling tot logrotate.conf bevat een directory /etc/logrotate.d/ een specifieke service configuratie bestanden die door logrotate worden gebruikt. In de volgende sectie zullen we een voorbeeld van een logrotate-configuratie maken.

NEWSLETTER INSCHRIJVEN & RSS
Schrijf je in voor RSS en NEWSLETTER en ontvang het laatste Linux-nieuws, banen, carrièreadvies en tutorials.

Nieuwe service logs toevoegen aan logrotate

In dit gedeelte gaan we nieuwe logbestand toevoegen aan een logrotate configuratie. Laten we zeggen dat we een logbestand met de naam:

/var/log/linuxcareer.log

hebben in onze /var/log directory die dagelijks geroteerd moet worden. Eerst moeten we een nieuw logrotate configuratiebestand maken voor ons nieuwe logbestand:

$ vi /etc/logrotate.d/linuxcareer

Voeg de volgende tekst in /etc/logrotate in.d/linuxcareer:

/var/log/linuxcareer.log {
missingok
notifempty
compress
size 20k
daily
create 0600 root root
}

Hier volgt een regel voor regel uitleg van het bovenstaande logrotate configuratiebestand:

TIP: Als je meerdere logbestanden in een enkel configuratiebestand wilt opnemen gebruik je wildcard. Bijvoorbeeld /var/log/mylogs/*.log zal logrotate instrueren om alle logbestanden te roteren die zich bevinden in /var/log/mylogs/ met extensie .log.

  • missingok – voer geen fout uit als het logbestand ontbreekt
  • notifempty – roteer geen logbestand als het leeg is
  • compress – Oude versies van logbestanden worden standaard gecomprimeerd met gzip(1)
  • size – Logbestand wordt alleen geroteerd als het groter wordt dan 20k
  • daily – zorgt voor dagelijkse rotatie
  • create – maakt een nieuw logbestand aan met rechten 600 waarbij de eigenaar en groep de root gebruiker is

Het logrotate hulpprogramma is erg veelzijdig omdat het veel meer configuratie opties biedt. Hieronder zal ik enkele andere configuratie-opties voor logrotate opnoemen. Voor een volledige lijst, raadpleeg de handleiding van logrotate:

$ man logrotate
  • kopie – Maakt een kopie van het logbestand, maar verandert het origineel helemaal niet.
  • mail <email@adres> – Als een log-bestand wordt geroteerd, wordt het gemaild naar het adres.
  • olddir <directory> – Logs worden verplaatst naar <directory> om geroteerd te worden.
  • postrotate/endscript – De regels tussen postrotate en endscript worden uitgevoerd nadat het logbestand is geroteerd.

Testen van een nieuwe Logrotate configuratie

Als u een nieuw logrotate configuratiebestand hebt gemaakt in /etc/logrotate.d:

maak een voorbeeld logbestand aan (indien niet aanwezig !):

# echo "rotate my log file" > /var/log/linuxcareer.log

Als uw logbestand er eenmaal staat, forceer dan logrotate om alle logs te roteren met de -f optie.

# logrotate -f /etc/logrotate.conf

Waarschuwing: Het bovenstaande commando zal al uw logs roteren die zijn gedefinieerd in de /etc/logrotate.d directory.

Nu bezoekt u opnieuw uw /var/log/directory en bevestigt u dat uw logbestand is geroteerd en dat er een nieuw logbestand is aangemaakt:

Zoals u kunt zien is het nieuwe lege logbestand linuxcareer.log is aangemaakt en het oude linuxcareer.log bestand is gecomprimeerd met gzip en hernoemd met datum extensie.

TIP: Om de inhoud van je gecomprimeerde log bestand te zien, hoef je het niet eerst te decomprimeren.

Conclusie

Zoals al eerder gezegd, is de beste manier om te voorkomen dat je systeem verstopt raakt door logbestanden, het maken van een aparte partitie/logvolume voor je /var/ of nog beter /var/log directory. Maar zelfs dan kan logrotate je helpen om schijfruimte te besparen door je logbestanden te comprimeren. Logrotate kan je ook helpen om je logbestanden te archiveren voor een toekomstige referentie door een extra kopie aan te maken of door je nieuw geroteerde logbestanden te e-mailen. Voor meer informatie zie de handleidingpagina van logrotate:

$ man logrotate

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *