Uvod
Montaža
Razumijevanje Logrotate
Upravljanje zapisnicima
Zaključak
Uvod
Logrotate je uslužni program za Linux koji pojednostavljuje administraciju datoteka dnevnika. Obično se pokreće jednom dnevno putem cron posla i upravlja zapisnicima na temelju prilagođenih pravila/postavki iz svoje konfiguracijske datoteke.
Neke od njegovih korisnih postavki uključuju automatsku rotaciju, kompresiju, uklanjanje i slanje log datoteka.
Montaža
Većina Linux sustava dolazi s Logrotate instaliranim prema zadanim postavkama. Provjerite jeste li ga instalirali na svojoj Vultr instanci izdavanjem logrotatenaredbe. Vidjet ćete izlaz s verzijom Logrotate koju vaš poslužitelj radi.
Ako ga nemate instaliranog, izvršite korake u nastavku da biste nastavili s instalacijom.
Na Debian/Ubuntu sustavima:
sudo apt-get update
sudo apt-get install logrotate
Na Redhat/CentOS sustavima:
sudo yum update
sudo yum install logrotate
Razumijevanje Logrotate
Pokretni dijelovi koji čine logorotaciju su:
Pravi alat logrotate.
Konfiguracijska datoteka Logrotate koja se nalazi na /etc/logrotate.conf. Ova datoteka sadrži konfiguraciju za sve datoteke dnevnika kojima Logrotate upravlja.
Dnevni cron posao /etc/cron.daily/logrotatekoji izdaje naredbu logrotate za pokretanje na temelju postavki u svojoj konfiguracijskoj datoteci. Ako ovaj cron posao ne postoji na vašem sustavu, kreirajte ga i dodajte mu isječak koda ispod.
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
Više o konfiguraciji
Ako zavirite unutra /etc/logrotate.conf, vidjet ćete da ima crtu include /etc/logrotate.du sebi. Ova linija govori Logrotateu da pogleda unutar /etc/logrotate.ddirektorija i pokrene svaku konfiguracijsku datoteku u njemu. Ovaj direktorij je obično mjesto gdje će aplikacije instalirane na vašem linux sustavu dodati svoje logrotate konfiguracije. Na primjer, Apache2 obično kreira /etc/logrotate.d/apachekonfiguracijsku datoteku nakon instalacije.
Upravljanje zapisnicima
Za testiranje Logrotatea, mi ćemo:
Izradite novu datoteku zapisnika testa s 1 MB ili nasumične podatke:
sudo base64 /dev/urandom | head -c 1000000 > /tmp/testfile.log
Izradite novu konfiguraciju Logrotate pokretanjem sudo nano /etc/logrotate.d/testlog. Kopirajte sljedeći isječak u praznu datoteku i pritisnite Ctrl + X za spremanje i izlaz.
/tmp/testfile.log {
size 1k
copytruncate
missingok
rotate 5
}
Opcije konfiguracije u gornjem isječku upućuju Logrotate na:
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.
NAPOMENA: Sve opcije konfiguracije za logorotaciju možete vidjeti ovdje .
Ručno pokrenite naredbu Logrotate:
sudo logrotate /etc/logrotate.conf
Nakon pokretanja gornje naredbe, navedite sve datoteke u tmp direktoriju ls -l /tmpkako biste potvrdili da je testfile.log doista rotiran. Trebali biste vidjeti popis sličan sljedećem koji pokazuje da testfile.logje doista rotiran. To će se nastaviti svaki dan i zadržati zadnjih 5 primjeraka.
[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
Zaključak
Dnevnici mogu brzo stvoriti probleme na poslužitelju tako što postanu preveliki i uzrokuju probleme s prostorom na disku. Upravljanje zapisnicima je ključno za svaki sustav, ali još bolje je automatizirati ovo upravljanje. Logrotate olakšava rotiranje, arhiviranje i brisanje dnevnika.
Napisala Lami Adabonyan