Full Disk? Sjekk Linux-Loggene Dine!

Viktige punkter å huske

  • Loggfiler på Linux-systemer kan bruke betydelig med lagringsplass.
  • Systemet ditt komprimerer vanligvis gamle loggfiler for å frigjøre diskplass.
  • Du kan bruke kommandoene journalctl eller tail -f for å vise logger og finne problematiske prosesser.

Linux-systemer er kjent for å være effektive, men du kan likevel oppleve at lagringsplassen raskt minker. Hva kan være årsaken? En av de største årsakene, og dermed synderne, finner du i Linux-systemloggene.

Hvorfor bruker logger så mye diskplass?

Loggfiler er essensielle for å administrere et Linux-system. De gir deg innsikt i hva som skjer med maskinen, og hjelper deg med å feilsøke eventuelle problemer. Loggsystemer i Linux, tilsvarende Event Viewer i Windows, lagrer informasjon om hendelser i systemet. Vanligvis tar ikke loggene mye plass, da de fleste Linux-distribusjoner automatisk administrerer hvor mye diskplass de bruker.

Historisk sett har Linux-logger vært lagret som vanlige tekstfiler, men mange store distribusjoner har gått over til systemd. I systemd administreres loggene av journald, en systemtjeneste, og lagres som binære filer. Alternativt kan din distribusjon bruke rsyslog eller syslog-ng.

Ettersom gamle logger ofte ikke er relevante og store arkiver kan kreve mye lagringsplass, vil systemet ditt vanligvis «rotere» dem. Dette innebærer å arkivere, komprimere, og til slutt slette dem, for å frigjøre plass for viktigere data.

Selv om du kanskje ikke tror at logger vil oppta mye plass, kan en feilaktig prosess raskt fylle opp loggene dine. Dette kan skje raskere enn systemet klarer å rotere dem.

Hvis du oppdager at diskplassen din plutselig minker, uten at du nylig har lastet ned store filer, kan problemet ligge i Linux-systemloggene. Da må du finne ut hva som fyller opp loggene og rette feilen.

Du kan sjekke diskbruken din med kommandoen du -h:

 du -h /var/log 

Dette vil vise en liste over hver underkatalog og hvor mye plass de bruker:

Hvor finner du loggene dine

Hvis du bruker en moderne Linux-distribusjon med systemd, bruker du programmet journalctl for å se loggene dine. journald lagrer normalt logger i katalogene /var/log/journal eller /run/log/journal, avhengig av distribusjonen.

For å vise loggene, skriv journalctl i terminalen. Det finnes flere nyttige kommandolinjealternativer. For å se oppstartsmeldingene, bruk alternativet -b:

 journalctl -b 

Du kan også se loggmeldinger i sanntid med -f-alternativet.

Hvis distribusjonen din ikke bruker systemd, finner du loggene i /var/log-katalogen. Selv med systemd, lagrer enkelte programmer fortsatt loggene sine her. Disse er vanlige tekstfiler som kan undersøkes med et verktøy som less.

For eksempel, for å lese systemloggen:

 less /var/log/syslog

Dette vil vise hele innholdet i loggfilen, som kan inneholde tusenvis av linjer:

Du kan også overvåke den i sanntid med kommandoen tail med -f-alternativet:

 tail -f /var/log/syslog

Hvordan Linux roterer loggfiler

I /var/log-katalogen kan du se filer med navn som slutter på «log.N.gz,» der N er et tall. Dette er resultatet av at systemet roterer eldre logger. De fleste distribusjoner har et verktøy som automatisk gjør dette, kalt «logrotate». Logrotate er vanligvis satt opp til å kjøre som en cron-jobb eller en systemd-timer.

Som standard vil de fleste distribusjoner kjøre logrotate daglig. logrotate komprimerer eldre logger med gzip, som filendelsen «.gz» indikerer. Det bruker en terskel, som alder eller filstørrelse, for å bestemme når logger skal komprimeres, og en annen terskel for når gamle loggfiler skal slettes.

Standardinnstillingene for logrotate er tilstrekkelige for de fleste brukere. Du kan justere logrorates atferd ved å redigere filen /etc/logrotate.conf som superbruker. Du kan også redigere systemets cron- eller systemd-timerfiler, men disse endringene er som regel bare relevante for serveradministratorer.

Det er bedre å fikse det som fyller opp loggene dine, i stedet for å endre konfigurasjonsfiler for å spare diskplass. Hvis du likevel må endre konfigurasjonen, kan du lese logrotate sin manualside.

Hvilke logger er trygge å slette?

Hvis alt annet mislykkes og du virkelig trenger å frigjøre diskplass, kan du manuelt slette de arkiverte loggfilene som slutter på «.gz» før logrotate gjør det. Du kan bruke kommandoen rm, men du må kjøre den som superbruker, da disse filene eies av systemet:

 sudo rm /var/syslog/syslog.*gz 

Denne kommandoen vil slette alle filer som inneholder «syslog.» og som slutter med «gz.»

Vær alltid svært forsiktig når du kjører kommandoer via sudo, spesielt destruktive kommandoer som rm!

Du bør vanligvis ikke slette filer i systemkataloger uten å fullt ut forstå konsekvensene. Arkiverte logger vil imidlertid ikke forårsake problemer hvis de mangler. Men vær oppmerksom på at du kan trenge tilgang til eldre logger hvis det oppstår problemer.

Hvordan fikse det som fyller opp loggene dine

Den beste måten å finne ut hva som fyller opp loggene dine er å overvåke loggene med journalctl eller tail -f alternativene. Det beste er å se etter repeterende feilmeldinger.

Du må løse problemet med den prosessen som er årsaken, for å spare diskplass. Hvis du ikke vet hva som forårsaker feilen, kan du søke på internett eller be om hjelp i distribusjonens supportkanaler. Når du har løst problemet, kan du trygt slette de eldre loggene. Da skal du ha mye mer diskplass tilgjengelig.