Introduksjon
Installasjon
Forstå Logrotate
Administrere logger
Konklusjon
Introduksjon
Logrotate er et Linux-verktøy som forenkler administrasjonen av loggfiler. Den kjører vanligvis en gang om dagen via en cron-jobb, og administrerer logger basert på tilpassede regler/innstillinger fra konfigurasjonsfilen.
Noen av de nyttige innstillingene inkluderer automatisk rotasjon, komprimering, fjerning og utsendelse av loggfiler.
Installasjon
De fleste Linux-systemer leveres med Logrotate installert som standard. Sjekk om du har den installert på Vultr-forekomsten din ved å gi logrotatekommandoen. Du vil se en utgang med versjonen av Logrotate som serveren din kjører.
Hvis du ikke har det installert, utfør trinnene nedenfor for å fortsette med installasjonen.
På Debian/Ubuntu-systemer:
sudo apt-get update
sudo apt-get install logrotate
På Redhat/CentOS-systemer:
sudo yum update
sudo yum install logrotate
Forstå Logrotate
De bevegelige delene som får logrotate til å løpe er:
Selve verktøyet logrotate.
Logrotates konfigurasjonsfil som ligger på /etc/logrotate.conf. Denne filen inneholder konfigurasjonen for alle loggfiler som Logrotate administrerer.
En daglig cron-jobb /etc/cron.daily/logrotatesom utsteder logrotate-kommandoen for å kjøre basert på innstillinger i konfigurasjonsfilen. Hvis denne cron-jobben ikke eksisterer på systemet ditt, oppretter du den og legger til kodebiten nedenfor.
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
Mer om konfigurasjon
Hvis du tar en titt innover /etc/logrotate.conf, vil du se at den har streken include /etc/logrotate.di seg. Det denne linjen gjør er å fortelle Logrotate om å se inne i /etc/logrotate.dkatalogen og kjøre hver konfigurasjonsfil i den. Denne katalogen er vanligvis der applikasjoner som er installert på Linux-systemet ditt vil legge til sine logrotate-konfigurasjoner. For eksempel vil Apache2 vanligvis lage en /etc/logrotate.d/apachekonfigurasjonsfil ved installasjon.
Administrere logger
For å teste Logrotate vil vi:
Opprett en ny testloggfil med 1MB eller tilfeldige data:
sudo base64 /dev/urandom | head -c 1000000 > /tmp/testfile.log
Opprett en ny Logrotate-konfigurasjon ved å kjøre sudo nano /etc/logrotate.d/testlog. Kopier følgende utdrag til tom fil og trykk Ctrl + X for å lagre og avslutte.
/tmp/testfile.log {
size 1k
copytruncate
missingok
rotate 5
}
Konfigurasjonsalternativene i kodebiten ovenfor instruerer Logrotate til å:
size 1k: Rotate log file if size is greater than or equal to 1k.
missingok: Ignore error messages if testfile.log does not exist.
copytruncate: Create a copy of current log file and then truncate it. This comes in handy when an application cannot close its log file because it continuously appends to it.
rotate 5: limit the number of log file rotations to 5. This will delete old versions of log files greater than 5 days.
MERK: Du kan se alle konfigurasjonsalternativer for logrotate her .
Kjør Logrotate-kommandoen manuelt:
sudo logrotate /etc/logrotate.conf
Etter å ha kjørt kommandoen ovenfor, liste alle filene i tmp-katalogen for ls -l /tmpå bekrefte at testfile.log faktisk ble rotert. Du bør se en liste som ligner på følgende som viser at viser testfile.logfaktisk har blitt rotert. Dette vil fortsette hver dag og beholde de siste 5 eksemplarene.
[root@vultr ~]# ls -l /tmp
-rw-r--r-- 1 root root 0 Nov 14 23:31 testfile.log
-rw-r--r-- 1 root root 1000000 Nov 14 23:30 testfile.log-20141114
-rw-r--r-- 1 root root 634 Nov 10 00:23 vultr_ipv6
-rw-------. 1 root root 0 Oct 15 20:44 yum.log
Konklusjon
Logger kan raskt skape problemer på en server ved å bli for store og forårsake diskplassproblemer. Å administrere logger er avgjørende for ethvert system, men enda bedre er det å automatisere denne administrasjonen. Logrotate gjør det enkelt å rotere, arkivere og slette logger.
Skrevet av Lami Adabonyan