Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Tip: beperk de omvang van de logboekbestanden in /var/log  (gelezen 4342 keer)

Offline Pjotr

  • Lid
    • Makkelijke Linuxtips
Tip: beperk de omvang van de logboekbestanden in /var/log
« Gepost op: 2015/03/11, 20:20:32 »
Je kunt ooit te maken krijgen met een fout die in razend tempo je harde schijf volpompt met logboekbestanden vol foutmeldingen. Natuurlijk wil je dan die fout verhelpen, maar bij wijze van noodmaatregel kun je eerst de omvang van de logboeken beperken.

Dat doe je zo:
https://sites.google.com/site/computertip/fouten?pli=1#TOC-De-omvang-van-de-logboekbestanden-in-var-log-loopt-de-spuigaten-uit
(punt 26, rechterkolom)

Doe er je voordeel mee!   :)

Vraag aan allen: is het misschien handig om deze ingreep standaard te doen? Dus ook zonder dat je dit probleem hebt? Je voorkomt in elk geval de kans op een hoop ellende door een onbruikbaar systeem....

Ik ben benieuwd naar jullie meningen.
« Laatst bewerkt op: 2015/03/11, 20:31:47 door Pjotr »

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #1 Gepost op: 2015/03/11, 20:58:23 »
Hou er rekening mee dat de logrotate maar 1x per dag gedaan wordt. De grootte zal dus maar 1x per dag gecontroleerd worden.

Het vollopen van de logs is trouwens de reden dat op veel servers /var/log een eigen partitie heeft, in combinatie met LVM om de partities makkelijk te kunnen schalen. Andere dirs zoals /home, /var/lib of /opt zijn ook vaak apart.
Maar dit is voor de meeste gebruikers overkill en nodeloos ingewikkeld.

Standaard toepassen lijkt me niet nodig. Op een gemiddeld systeem heb je hooguit enkele tientallen MB's aan logbestanden. En op een (web)server wil je de logbestanden meestal langer dan enkele dagen bewaren. Werk je op een extreem klein systeem dan kan je overwegen om rsyslog helemaal te verwijderen of te vervangen door een log dat via het netwerk verstuurd wordt.

Op het moment dat systemd de standaard is zal deze handleiding niet meer werken, aangezien alles dan via journald loopt.

Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #2 Gepost op: 2015/03/11, 21:11:59 »
Doe er je voordeel mee!   :)

Vraag aan allen: is het misschien handig om deze ingreep standaard te doen? Dus ook zonder dat je dit probleem hebt? Je voorkomt in elk geval de kans op een hoop ellende door een onbruikbaar systeem....

Ik ben benieuwd naar jullie meningen.

Ik heb het toegepast op mijn L40 ; ben benieuwd naar het resultaat. :)
Gubuntu 17.04 wegens verdwijnen Unity binnenkort

Offline Timo

  • Forumteam
    • timo.diedering
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #3 Gepost op: 2015/03/11, 21:16:58 »
Met het oog op systemd zou ik dit geen standaard ingreep maken. Dan werkt de hele boel weer anders en kun je opnieuw beginnen. Sowieso lijkt me dit slechts toepasbaar in zéér specifieke situaties...

Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #4 Gepost op: 2015/03/11, 21:27:51 »
Met het oog op systemd zou ik dit geen standaard ingreep maken. Dan werkt de hele boel weer anders en kun je opnieuw beginnen. Sowieso lijkt me dit slechts toepasbaar in zéér specifieke situaties...

Ook met systemd worden logs opgeslagen naar /var/log. Bron: mezelf, uitgetest over 6 maanden tijd met systemd op Antergos (gebaseerd op Arch).

Offline Pjotr

  • Lid
    • Makkelijke Linuxtips
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #5 Gepost op: 2015/03/11, 21:59:34 »
Hou er rekening mee dat de logrotate maar 1x per dag gedaan wordt. De grootte zal dus maar 1x per dag gecontroleerd worden.
Zoals ik het lees, zal er wanneer je een maximale grootte hebt bepaald, automatisch een logrotate worden uitgevoerd wanneer dat maximum is bereikt. Uit "man logrotate":
Citaat
Normally, logrotate is run as a daily cron job.  It will not modify a log more than once in one day unless the criterion for that log is based on the  log's size and logrotate is being run more than once each day, or unless the -f or --force option is used.

Standaard toepassen gaat inderdaad wellicht wat ver. In negen jaar voltijds Linuxgebruik, heb ik nog nooit last gehad van vollopende logboeken....

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #6 Gepost op: 2015/03/11, 23:22:59 »
Je vergeet dit stukje:
Citaat
and logrotate is being run more than once each day

Het is een proces wat 1x draait en afsluit wanneer het klaar is. Het is geen programma wat actief blijft en continu de logbestanden in de gaten houdt of zo.

Vanuit /etc/crontab:
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
In /etc/cron.daily/logrotate staat het script voor logrotate. En die wordt dus 1x per dag om 6:25 uitgevoerd als je geen anacron hebt.

Heb je wel anacron geïnstalleerd, dan hier die configuratie:
1       5       cron.daily       nice run-parts --report /etc/cron.daily
1x per dag om 5 over 12, als de computer op dat moment uitstaat wordt het op een ander tijdstip alsnog gedaan.

Je kan logrotate wel vaker inplannen via cron, maar ik zie daar de voordelen niet echt van in. Als je last hebt van iets wat continue je logs volschrijft merk je dat snel genoeg aan de traagheid van je systeem. Bovendien lost het je probleem ook niet op: logrotate zal dat proces niet stoppen of de fouten eruit halen. Je systeem zal dus nog steeds continu bezig blijven met de logs en daardoor onwerkbaar traag zijn.

Offline Pjotr

  • Lid
    • Makkelijke Linuxtips
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #7 Gepost op: 2015/03/11, 23:37:25 »
Maar hoe interpreteer je deze toelichting dan, bij de gerelateerde optie maxsize:
Citaat
maxsize  Log files are rotated when they grow bigger than size bytes even before the additionally specified time interval (daily, weekly, monthly, or yearly).  The related size option is similar except that it is mutually exclusive with the time interval options, and it causes log files to be rotated without regard for the last rotation time.  When maxsize is used, both the size and timestamp of a log file are considered.

Ik vind de toelichting nogal onduidelijk. Ik kan er niet uit opmaken welke optie nu de door mij gewenste functie heeft: onmiddellijk roteren wanneer de maximale grootte is bereikt, ongeacht cronjob.

Voor mij is dus de vraag: maxsize of size?  :P
« Laatst bewerkt op: 2015/03/11, 23:42:25 door Pjotr »

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #8 Gepost op: 2015/03/11, 23:49:09 »
Het script wordt normaal gesproken 1x per dag uitgevoerd. In de instellingen kan je opgeven of een bestand na X tijd verwerkt moet worden, of als het groter is dan X MB.

Stel dat je een bestand hebt wat na 1 week gearchiveerd moet worden of wanneer het groter is dan 10 MB, dan zal die laatste optie voorrang krijgen ook al is dat bestand minder dan een week geleden ook al gedaan.

Maar er wordt maar 1x per dag naar de grootte gekeken dus als het bestand in 1 dag van 0 naar 1000 MB kan gaan dan zit je tot de volgende dag met dat grote bestand.

Edit: de maxsize optie bestaat niet voor Ubuntu 12.04. In 14.04 is die er wel.

Nog een edit: je kan best een nieuwe cronjob maken die bijv. ieder uur draait, maar dan is je computer ieder uur even traag omdat hij alle logbestanden na moet lopen. En dat is een zware ingreep voor een probleem dat niet vaak gebeurt. Bovendien los je het probleem hiermee ook niet op, je verzacht mogelijk alleen wat symptomen. Als je je hier echt veel zorgen om maakt is het beter om een script te schrijven dat de totale grootte van /var/log of de vrije ruimte op je schijf oid in de gaten houdt en je laat mailen als het uit de hand dreigt te lopen.

Als je sendmail, ssmtp of een ander mailprogramma op je pc hebt ingesteld zou je dit script in /etc/cron.daily kunnen zetten:
#!/bin/sh

ADMIN="jouw@e-mail.example,nog-een-mail@example.com"
THRESHOLD=90
 
df -PkH | grep -vE '^Filesystem|tmpfs|cdrom|media' | awk '{ print $5 " " $6 }' | while read output;
do
  usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
  partition=$(echo $output | awk '{print $2}' )
  if [ $usep -ge $THRESHOLD ]; then
    echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |
    mail -s "Alert: Almost out of disk space $usep%" $ADMIN
  fi
done
Dit script zal een mailtje sturen als op het moment van checken een partitie voor meer dan 90% in gebruik is.
« Laatst bewerkt op: 2015/03/12, 00:09:56 door Johan van Dijk »

Offline Pjotr

  • Lid
    • Makkelijke Linuxtips
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #9 Gepost op: 2015/03/12, 00:07:05 »
OK..... Maar interpreteer ik de onduidelijke toelichting dan goed, wanneer ik vaststel dat maxsize wel doet wat ik wil? Namelijk direct roteren bij bereiken van maximale grootte, ongeacht cronjob?

Lastig, die onduidelijke toelichting.  :evil:

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #10 Gepost op: 2015/03/12, 00:13:30 »
Direct roteren kan niet, tenzij je je computer continu de logfiles in de gaten wil laten houden. En dat is zonde want daar wordt hij niet echt sneller van.

Verder: zie de edits in mijn vorige bericht :)

Offline Ron

  • Forumteam
    • r0n
    • Over Tholen
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #11 Gepost op: 2015/03/12, 11:36:31 »
Zou het niet makkelijker zijn, om alle logs na een ingestelde tijd te verwijderen?
Je voorkomt dan geen vollopen, maar je kan wel alles in de gaten houden.
Of ben ik nu erg dom?
Openstandaard Evangelist, OpenSource Promotor, OpenData voorstander.
Xubuntu gebruiker en voorstander
Er is ook nog een andere hobby.

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #12 Gepost op: 2015/03/12, 11:49:46 »
Dat doet de logrotate al. De logs van die dag (of week, maand, enz.) worden gezipt en er wordt een nieuwe aangemaakt. De oude gezipte logs worden na een bepaalde periode verwijderd.

Offline Tom

  • Lid
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #13 Gepost op: 2015/03/12, 19:58:58 »
Bleachbit doet dat ook !.
Netbook Xuby Xenial 16.04.5 Lts (totaal gestripte versie). Desktop Xuby Bionic 18.04.6 Lts Gestripte versie - Laptop Xuby Bionic 18.04.6 Lts. Ubuntu CoC Signed.Yes.

Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #14 Gepost op: 2015/03/12, 20:27:26 »
Bleachbit doet dat ook !.

Klopt :)

Offline Timo

  • Forumteam
    • timo.diedering
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #15 Gepost op: 2015/03/12, 21:08:38 »
Met het oog op systemd zou ik dit geen standaard ingreep maken. Dan werkt de hele boel weer anders en kun je opnieuw beginnen. Sowieso lijkt me dit slechts toepasbaar in zéér specifieke situaties...

Ook met systemd worden logs opgeslagen naar /var/log. Bron: mezelf, uitgetest over 6 maanden tijd met systemd op Antergos (gebaseerd op Arch).
Ik zie het. Ook op OpenSUSE gebeurt dit. Werkt logrotate echter ook met de binaire bestanden die systemd aflevert?

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #16 Gepost op: 2015/03/13, 08:57:13 »
Een handleiding die ik vond voor Manjaro/Arch linux: https://wiki.manjaro.org/index.php?title=Limit_the_size_of_.log_files_%26_the_journal
Dit zal dus niet direct van toepassing zijn voor Ubuntu, maar de basisprincipes zullen zo'n beetje hetzelfde zijn.

De grootte van de systemd journal zal door systemd zelf bijgehouden worden. Dit kan je instellen in /etc/systemd/journald.conf of een vergelijkbaar configuratiebestand.

Daarnaast zullen er vast nog wel wat pakketten zijn die nog op de oude manier logfiles maken. Die zullen dan alsnog door logrotate regelmatig verwerkt worden. Misschien is er zelfs wel een overgangsperiode dat alles dubbel bijgehouden wordt, wie weet...

Offline Ron

  • Forumteam
    • r0n
    • Over Tholen
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #17 Gepost op: 2015/03/13, 10:28:54 »
Dit kan je instellen in /etc/systemd/journald.conf
Deze file bestaat in 15.04 ook.
In dezelfde map bevinden zich nog een aantal configuratie files, waarbij de meeste opties staan uitgevinkt (met een # aan het begin).
Openstandaard Evangelist, OpenSource Promotor, OpenData voorstander.
Xubuntu gebruiker en voorstander
Er is ook nog een andere hobby.

Offline markba

  • Lid
    • http://markbaaijens.nl/
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #18 Gepost op: 2015/03/13, 12:02:14 »
Vraag aan allen: is het misschien handig om deze ingreep standaard te doen? Dus ook zonder dat je dit probleem hebt?
Persoonlijk heb ik dit probleem nooit gehad in de 10 jaar dat ik met Linux bezig ben. Niet op de desktop en ook niet op servers (fysiek/virtueel). Blijkbaar doet de bestaande logrotate (die 1x per dag alles opschoont) goed zn werk. En ook heb ik nooit te krappe systeem-partities; dat werkt ook goed mee, er is dan immers altijd genoeg ruimte voor 'exploderende' logs.

Dus nee, ik ga dit niet gebruiken, zie dat (persoonlijk) als een oplossing voor een probleem wat er niet is.

Offline Pjotr

  • Lid
    • Makkelijke Linuxtips
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #19 Gepost op: 2015/03/13, 12:13:36 »
Dus nee, ik ga dit niet gebruiken, zie dat (persoonlijk) als een oplossing voor een probleem wat er niet is.
Ik ga het ook niet standaard gebruiken.

De discussie was verhelderend; ik heb de handleiding inmiddels aangescherpt en toegespitst op mensen die het probleem wel hebben en die tijdelijk een noodoplossing zoeken.

Belangrijke toevoeging: gigantische logboeken lees je het beste uit met de terminalopdracht "less", want anders loopt je kladblokje waarschijnlijk vast.
Voorbeeld:
less /var/log/syslog
« Laatst bewerkt op: 2015/03/13, 12:48:52 door Pjotr »

Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #20 Gepost op: 2015/03/13, 12:55:51 »
De grootte van de systemd journal zal door systemd zelf bijgehouden worden. Dit kan je instellen in /etc/systemd/journald.conf of een vergelijkbaar configuratiebestand.

Of voor de grafische, minder-technische gebruikers zoals ik: je kunt dat ook instellen middels het hulpprogramma van GNOME genaamd "Logs".
(voor systemd dus)

Offline markba

  • Lid
    • http://markbaaijens.nl/
Re: Tip: beperk de omvang van de logboekbestanden in /var/log
« Reactie #21 Gepost op: 2015/03/13, 12:56:08 »
De discussie was verhelderend; ik heb de handleiding inmiddels aangescherpt en toegespitst op mensen die het probleem wel hebben en die tijdelijk een noodoplossing zoeken.
OK. Goede actie.

Citaat
Belangrijke toevoeging: gigantische logboeken lees je het beste uit met de terminalopdracht "less", want anders loopt je kladblokje waarschijnlijk vast.
Voorbeeld:
less /var/log/syslog
Een beetje offtopic, maar realtime een log uitlezen doe je met:
tail -f <logfile>Zodra de log verandert, zie je dat dus meteen. Errruuug handig......