GNU/Linux >> Znalost Linux >  >> Linux

Jak spravovat soubory protokolu pomocí Logrotate v Linuxu

Před několika dny jsme publikovali průvodce, který popisoval, jak nastavit centralizovaný server Rsyslog v systému CentOS. Dnes se v této příručce podíváme na to, jak spravovat soubory protokolu pomocí Logrotate na Linuxu. Tento nástroj zjednodušuje správu souborů protokolu, což je zvláště užitečné pro systémy, které každý den vytvářejí velké množství souborů protokolu. Jak jeho název napovídá, LogRotate otáčí protokoly zcela mimo váš systém v pravidelných intervalech. Umožňuje také automatické otáčení, kompresi, odstraňování a zasílání souborů protokolu. Každý soubor protokolu lze zpracovávat denně, týdně, měsíčně nebo když se příliš zvětší.

Správa souborů protokolu pomocí Logrotate

Nainstalovat Logrotate

Logrotate je k dispozici ve výchozích úložištích většiny distribucí Linuxu.

V Arch Linuxu a jeho derivátech musíte k instalaci spustit následující příkaz.

$ sudo pacman -S logrotate

Na systémech založených na RPM, jako je RHEL, CentOS, Scientific Linux, jej můžete nainstalovat pomocí příkazu:

$ sudo yum install logrotate

Na Debianu, Ubuntu:

$ sudo apt-get install logrotate

Na SUSE otevřeteSUSE:

$ sudo znf install logrotate
StáhnoutZdarma eGuide:„22 užitečných vylepšení, díky kterým se Ubuntu bude cítit jako doma“

Konfigurace Logrotate

Hlavní konfigurační soubor LogRotate je /etc/logrotate.conf .

Zde je výchozí obsah tohoto souboru v mém systému Arch. Tento výstup souboru může vypadat trochu jinak na jiných distribucích Linuxu.

$ cat /etc/logrotate.conf

Ukázkový výstup:

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# restrict maximum size of log files
#size 20M

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# Logs are moved into directory for rotation
# olddir /var/log/archive

# Ignore pacman saved files
tabooext + .pacorig .pacnew .pacsave

# Arch packages drop log rotation information into this directory
include /etc/logrotate.d

/var/log/wtmp {
 monthly
 create 0664 root utmp
 minsize 1M
 rotate 1
}

/var/log/btmp {
 missingok
 monthly
 create 0600 root utmp
 rotate 1
}

Podívejme se, co každá možnost dělá ve výše uvedeném konfiguračním souboru.

  • týdně - Každý týden otáčí protokoly.
  • otočte 4 -  Ve výchozím nastavení uchovává LogRotate soubory protokolu po dobu čtyř týdnů (samozřejmě jednoho měsíce). Vzhledem k tomu, že po určité době otočí všechny soubory protokolu, možná budete muset zálohovat důležité soubory protokolu, pokud o ně nechcete přijít.
  • velikost 20M - Otočí soubory protokolu, pokud dosáhly velikosti 20 MB. Ve výchozím nastavení je tato možnost zakázána. Chcete-li jej povolit, stačí jej odkomentovat.
  • vytvořit - Vytvoří nové soubory protokolu jednou po otočení starých souborů protokolu. Tato možnost je ve výchozím nastavení povolena.
  • komprimovat - Komprimuje soubory protokolu. Také ve výchozím nastavení nekomprimuje protokoly. Pokud chcete protokoly komprimovat, odkomentujte tento řádek.
  • /etc/logrotate.d/ - Tento adresář obsahuje soubory pravidel protokolu specifické pro aplikaci.
  • chybějící OK - Pokud soubor protokolu chybí, Logrotate přejde k dalšímu bez zobrazení chybové zprávy.

Logrotate segmentuje soubory protokolu a komprimuje protokoly na základě pravidel, která jsou specifikována v /etc/logrotate.d/ adresář.

Pojďme se podívat na obsah tohoto adresáře.

$ ls /etc/logrotate.d/

Ukázkový výstup by byl:

lirc  samba

Jak vidíte ve výše uvedeném výstupu, obsahuje různé soubory pravidel pro všechny protokoly spravované LogRotate. Chcete-li zobrazit konkrétní pravidlo protokolu aplikace, například samba, spusťte:

$ cat /etc/logrotate.d/samba

Ukázkový výstup:

/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log {
 notifempty
 missingok
 sharedscripts
 copytruncate
 postrotate
 /bin/kill -HUP `cat /var/run/samba/*.pid 2>/dev/null` 2>/dev/null || true
 endscript
}

Tady,

  • notifempty - Označuje, že soubory protokolu nebudou rotovány, pokud jsou prázdné.
  • copytruncate - Po vytvoření kopie ořízněte původní soubor protokolu na místě.
  • postrotate/endscript - Řádky mezi postrotate a endscript se provedou po otočení souboru protokolu.
  • sdílený skript - Skripty jsou spuštěny pouze jednou, bez ohledu na to, kolik protokolů odpovídá vzoru se zástupnými znaky.

Můžete si také vytvořit své vlastní soubory pravidel protokolu v adresáři /etc/logrotate.d/ a definovat svá vlastní pravidla.

Cron denně spouští obslužný program logroate při hledání souborů protokolu, které se mají otáčet. Pravidla automatického střídání protokolů můžete zadat v /etc/cron.daily/logrotate souboru, abyste se vyhnuli ručnímu zásahu uživatele. Bude provádět rotaci protokolu každý den v určitou dobu.

Chcete-li ověřit, zda se soubory protokolů otáčejí nebo ne, spusťte:

$ cat /var/lib/logrotate.status

Ukázkový výstup:

logrotate state -- version 2
"/var/log/samba/log.smbd" 2016-5-12-11:0:0
"/var/log/lircd" 2016-6-15-10:0:0
"/var/log/httpd/*log" 2016-5-12-11:0:0
"/var/log/wtmp" 2016-5-6-10:0:0
"/var/log/samba/*.log" 2016-5-12-11:0:0
"/var/log/btmp" 2017-4-1-11:36:53
"/var/log/samba/log.nmbd" 2016-5-12-11:0:0

Chcete-li získat další podrobnosti, spusťte logrotate zadáním následujícího příkazu:

$ logrotate --help

Nebo,

$ man logrotate

To je zatím vše lidi. Logrotate je jednoduchý, ale užitečný nástroj pro rotaci protokolů, který zjednodušuje správu protokolů. Nemusíte se potýkat se složitými kroky konfigurace a instalace. Vše je samovysvětlující. Pokud spravujete systém, který vytváří velké množství souborů protokolu, můžete je pravidelně otáčet pomocí Logrotate.

Na zdraví!


Linux
  1. Jak provádět řádkové porovnání souborů v Linuxu pomocí příkazu diff

  2. Jak otočit soubory protokolu Apache v Linuxu

  3. Jak třídit soubory v Linuxu pomocí příkazu Sort

  1. Jak zapisovat soubory protokolu do RAM pomocí Log2ram v Linuxu

  2. Soubory protokolu Linux

  3. Jak používat Logrotate ke správě souborů protokolu

  1. Jak najít soubory v Linuxu

  2. Jak otáčet a komprimovat soubory protokolu v Linuxu pomocí Logrotate

  3. Jak sdílet soubory lokálně v Linuxu pomocí NitroShare