Logrote je nástroj určený pro správce, kteří spravují servery, které produkují velké množství souborů protokolu. Pomáhá jim to ušetřit místo na disku a také se vyhnout potenciálnímu riziku, že systém přestane reagovat kvůli nedostatku místa na disku.
Běžným řešením, jak se tomuto druhu problému vyhnout, je nastavení samostatný oddíl nebo logický svazek pro /var
montážní bod. Logrotate však může být také schůdným řešením tohoto problému, zvláště pokud je příliš pozdě přesunout všechny protokoly pod jiný oddíl.
V tomto tutoriálu si ukážeme, jak nakonfigurovat službu logrotate na Red Hat Enterprise Linux, abyste mohli vzít soubory protokolu zpět pod svou kontrolu.
V tomto tutoriálu se naučíte:
- Jak používat nástroj logrotate na RHEL
- Kde jsou uloženy konfigurační soubory logrotate
- Jak nastavit vlastní konfiguraci logrotate
- Jak otestovat implementaci logrotate
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Red Hat Enterprise Linux |
Software | logrotovat |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Co je logrotate?
Logrotate poskytuje správci systému možnost systematicky střídat a archivovat jakékoli soubory protokolu vytvořené systémem, a tak snižovat požadavky operačního systému na místo na disku. Ve výchozím nastavení se logrotate vyvolává jednou denně pomocí plánovače cron z umístění /etc/cron.daily/
.
# ls /etc/cron.daily/ cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch
Konfigurace logrotate
Konfigurace Logrotate se provádí úpravou dvou samostatných konfiguračních souborů:
- /etc/logrotate.conf
- soubory konfigurace specifické pro službu uložené v /etc/logrotate.d/
Hlavní logrotate.conf
soubor obsahuje obecnou konfiguraci. Zde je výchozí konfigurační soubor logrotate logrotate.conf
:
weekly rotate 4 create dateext include /etc/logrotate.d /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 }
- Řádek 1 – týdně konfigurační volba zajišťuje týdenní rotaci všech log-souborů definovaných v hlavním konfiguračním souboru a v adresáři /etc/logrotate.d/.
- Řádek 2 – otočte 4 zajišťuje, že logrotate uchovává 4týdenní zálohu všech souborů protokolu
- Řádek 3 – vytvořit volba přikazuje logrotate vytvořit nové prázdné soubory protokolu po každém otočení
- Řádek 4 – dateext připojí ke všem rotovaným souborům protokolu příponu ve formě data, kdy byl každý konkrétní soubor protokolu zpracován logrotate
- Řádek 5 – zahrnout všechny ostatní konfigurace z adresáře /etc/logrotate.d
- Řádek 6 – 11 obsahuje konkrétní konfiguraci rotace protokolu služby
Na rozdíl od logrotate.conf
, adresář /etc/logrotate.d/
obsahuje specifické konfigurační soubory služby používané logrotate. V další části vytvoříme ukázkovou konfiguraci logrotate kostry.
Včetně nových protokolů služeb k logrotate
V této sekci přidáme nový soubor protokolu do konfigurace logrotate. Řekněme, že máme soubor protokolu s názvem /var/log/linuxserver.log
, sedící v našem /var/log
adresář, který je třeba denně střídat.
Nejprve musíme vytvořit nový konfigurační soubor logrotate, který se přizpůsobí našemu novému souboru protokolu:
# vi /etc/logrotate.d/linuxserver
Do /etc/logrotate.d/linuxserver vložte následující text:
/var/log/linuxserver.log { rotate 7 daily compress delaycompress missingok notifempty create 660 linuxuser linuxuser }
Tento konfigurační soubor poběží denně, vytvoří maximálně 7 archivů vlastněných linuxuser a linuxuser group s oprávněními 660, komprimuje všechny protokoly a vyloučí pouze včerejší a prázdné soubory protokolu. Zde jsou některá vybraná klíčová slova konfigurace logrotate. Úplný návod najdete na manuálové stránce logrotate.
denně | Soubory protokolu se střídají každý den. |
týdně | Soubory protokolů se otočí, pokud je aktuální den v týdnu menší než den v týdnu poslední rotace nebo pokud od poslední rotace uplynul více než týden. To je obvykle stejné jako rotace protokolů první den v týdnu, ale pokud logrotate není spuštěno každou noc, rotace protokolu proběhne při první platné příležitosti. |
měsíčně | Soubory protokolu se otočí při prvním spuštění logrotate v měsíci (normálně je to první den v měsíci). |
notifempty | Neotáčejte protokol, pokud je prázdný (toto přepíše možnost ifempty). |
nocompress | Staré verze souborů protokolu nejsou komprimovány. |
delaycompress | Odloží kompresi předchozího souboru protokolu na další cyklus rotace. To má efekt pouze při použití v kombinaci s kompresí. Lze jej použít, když některému programu nelze říci, aby zavřel svůj soubor protokolu, a proto může nějakou dobu pokračovat v zápisu do předchozího souboru protokolu. |
komprimovat | Staré verze souborů protokolu jsou standardně komprimovány pomocí gzip. |
e-mailová adresa | Když protokol otočí a neexistuje, je odeslán na adresu. Pokud by určitý protokol neměl generovat žádnou poštu, lze použít direktivu nomail. |
chybějící | Pokud soubor protokolu chybí, přejděte k dalšímu bez zobrazení chybové zprávy. |
Jakmile bude váš konfigurační soubor připraven, jednoduše jej zkopírujte do adresáře logrotate a změňte vlastníka a oprávnění:
# cp linuxserver /etc/logrotate.d/ # chmod 644 /etc/logrotate.d/linuxserver # chown root.root /etc/logrotate.d/linuxserver
Testování nové konfigurace Logrotate
Nyní, když byla implementována konfigurace logrotate, otestujte ji podle níže uvedených kroků.
- Vytvořte nějaký ukázkový soubor protokolu, pokud ještě neexistuje:
# echo "rotate my log file" > /var/log/linuxserver.log
- Jakmile je soubor protokolu na svém místě, vynucení rotace logrotate otáčí všechny protokoly pomocí
-f
volba.# logrotate -f /etc/logrotate.conf
Upozornění:Výše uvedený příkaz otočí všechny vaše protokoly definované v
/etc/logrotate.d
adresář. - Nyní znovu navštivte svůj adresář /var/log/ a potvrďte, že váš soubor protokolu byl otočen a byl vytvořen nový soubor protokolu.
Úvahy na závěr
Jak již bylo zmíněno dříve, nejlepším způsobem, jak zabránit zanášení systému soubory protokolu, je vytvořit samostatný oddíl/logický svazek pro váš /var/
nebo ještě lépe /var/log
adresář. Nicméně i potom vám logrotate může pomoci ušetřit místo na disku komprimací souborů protokolu. Logrotate vám také může pomoci archivovat vaše soubory protokolu pro budoucí použití vytvořením další kopie nebo zasláním nově otočených souborů protokolu e-mailem.