GNU/Linux >> Znalost Linux >  >> Linux

Nastavení logrotate v Linuxu

Představte si, jaký by byl život, kdyby kritická služba před několika minutami zkolabovala a vy jste byli povoláni, abyste zachránili situaci. Pokusíte se restartovat službu a prostě to nedá. Nejsou zde žádné chybové zprávy, ale co je důležitější, žádné stopy toho, co dělalo, než se rozhodlo zemřít. Vaší myslí prochází sto jedna příčin a vy si uvědomíte, že neexistuje způsob, jak vědět, kterým směrem se vydat. Možná bys mohl restartovat server úplně. Jen možná.

Tento scénář je jedním z mnoha případů, kdy vás může zachránit protokolování. Běžící software obvykle uchovává záznamy o důležitých činnostech souvisejících s jeho provozem pro potřeby potomků v souboru. Cokoli lze uložit do souboru protokolu, protože to pomáhá vývojářům i správcům systému vědět, co se stalo s konkrétním softwarem poté. Soubory protokolu jsou také používány osobami orientovanými na bezpečnost ke kontrole přístupu ke konkrétním zdrojům. V sítích nebo zprávách zaznamenávají soubory protokolu čas odeslání nebo přijetí zpráv pro pozdější použití.

Soubory protokolů se podle definice neustále zvětšují v závislosti na frekvenci a upovídanosti, s jakou jsou aktualizovány. Aby sloužily svému účelu, jsou normálně otevřeny v režimu připojení a obsahují časová razítka, která pomáhají s řešením problémů a forenzní analýzou. To však představuje problém, protože velké soubory dělají práci se soubory protokolu těžkopádným procesem pro systém i pro lidského kontrolora. Protokoly se otáčejí, aby byly soubory protokolů udržitelné. Jednoduše řečeno, nový soubor je otevřen, zatímco starší je uzavřen a buď zachován nebo odstraněn v závislosti na preferencích návrhu. To zabraňuje tomu, aby klády zaplnily celé oddíly a srazily systémy na kolena. Možná jste si všimli rotace protokolu při práci na systému poblíž. Podívejte se na data v boot.log soubory.

V tomto případě, když je splněna určitá podmínka, je aktuální soubor přejmenován připojením data k jeho identifikaci a sledování a je otevřen nový soubor s původním názvem, připravený přijímat příchozí zprávy protokolu.

Přihlášení v Linuxu (rsyslogd)

Jak můžete očekávat, přihlašování v systémech Linux, jako je server CentOS 7, který používám pro ilustraci, spoléhá na démona, který usnadňuje protokolování. Rsyslogd je název spolehlivé staré služby a je to open source. Ve skutečnosti to není tak staré. Je to vylepšená verze původního syslog démona a má schopnost rychle zpracovávat a předávat protokoly do libovolného umístění v síti IP. Kromě syslog a rsyslog , existuje syslog-ng , což je další démon pro zpracování protokolů. Výchozí obslužný program protokolu závisí na zvoleném distro. Rsyslog je standardně dodáván v mnoha distribucích založených na Red Hatu. Spuštěním následujícího příkazu ověřte jeho přítomnost a verzi ve vašem systému:

rsyslogd -v

Protože se jedná o démona, můžete zkontrolovat, zda je aktivní, pomocí systemd takto:

systemctl status rsyslog

Pokud z nějakého důvodu neběží, můžete jej spustit pomocí systemd .

[ Poznámka redakce:Mnoho novějších systémů nahradilo rsyslogd protokolem journald. Můžete si vybrat kteroukoli možnost nebo dokonce obě, abyste zvládli své potřeby protokolování. Další informace naleznete v dokumentaci k vaší distribuci. Tento článek předpokládá, že používáte rsyslogd.]

Logrotate

Logrotate je linuxový nástroj, jehož základní funkcí je - čekat na to - rotovat protokoly. Pokud není nainstalován jako součást výchozí instalace operačního systému, lze jej nainstalovat jednoduše spuštěním:

 yum install logrotate

Binární soubor může být umístěn na /bin/logrotate .

Instalací logrotate , nový konfigurační soubor je umístěn do /etc/ adresář pro ovládání obecného chování nástroje při jeho spuštění. Rovněž je vytvořena složka pro konfigurační soubory modulu snap-in specifické pro službu pro přizpůsobené požadavky na rotaci protokolu. Více o tom o něco později.

Denní úloha cron

cron denně se spouští úloha, která spouští obslužný program. Toho je dosaženo umístěním volání obslužného programu do standardního cron složka pro každodenní úlohy. I když jsou specifika volání mimo rozsah tohoto článku, stačí říci, že volání je pouze Bash skript, který spouští logrotate binární, říká systému, co má dělat v případě chyby.

Standardní umístění souboru protokolu

Protokoly v systému Linux lze umístit kamkoli to umožňují oprávnění. Vzhledem k tomu, že se neustále mění ve velikosti a obsahu, hierarchie souborového systému ze své podstaty předepisuje, aby byly uchovávány v /var/log/ adresář.

Níže uvedený snímek obrazovky je náhled na obsah mého /var/log adresář.

Konfigurační soubory a příklady

/etc/logrotate.conf

První soubor, který je třeba vzít na vědomí s ohledem na funkci logrotate je logrotate.conf . Tento konfigurační soubor obsahuje direktivy pro to, jak se mají soubory protokolu ve výchozím nastavení otáčet. Pokud neexistuje žádná konkrétní sada direktiv, obslužný program jedná podle direktiv v tomto souboru.

Níže je ukázka obsahu konfiguračního souboru.

Pojďme si projít několik direktiv, abychom získali představu o flexibilitě logrotate. Autor obslužného programu naštěstí vložil dostatek komentářů, aby mohl začít nováčka. Můžete také vidět man stránku pro hlubší ponor. Direktivy weekly , dateext , compress , create a rotate 4 uvádí, že soubory protokolu se mají střídat týdně , že datum rotace bude použito jako identifikační přípona z otočených souborů, že by měly být otočené soubory komprimovány , že se má vytvořit nový soubor přijímat příchozí protokoly, a to ne více než čtyři protokoly by měly být vedeny. Jinými slovy, pátý nejnovější protokol by měl být smazán. Všimněte si také, že v mém systému kvůli přítomnosti # před compress komprese je ve výchozím nastavení zakázána.

Existuje také direktiva pro zahrnutí konkrétní složky:/etc/logrotate.d . Tato složka se používá pro požadavky na rotaci protokolu specifické pro balíček. Balíčky navržené tak, aby využívaly výhody logrotate přetáhněte konfigurační soubory do tohoto adresáře. Tato modularita je v souladu s duchem Linuxu a zvyšuje rozšiřitelnost nástroje. Konfigurační soubory obsahují podobné direktivy a případně vlastní soubory protokolu. Můžete si také vytvořit svůj vlastní konfigurační soubor pro zpracování libovolného souboru protokolu podle vašeho výběru. Stačí zadat název souboru, přidat soubor protokolu ke zpracování a umístit jej do tohoto adresáře. Nakonec existují direktivy pro soubory protokolu bez balíčků vlastníka, jako je wtmp a další systémové protokolové soubory. man stránka je plná dalších direktiv a uživatelům, kteří mají specifičtější potřeby rotace, důrazně doporučuji, aby se na ni podívali.

/etc/logrotate.d

Naštěstí jsem hodně mluvil o /etc/logrotate.d dovolte mi ukázat vám obsah tohoto adresáře, abych vám myšlenky sdílené dříve přinesl domů.

A jen pro pořádek se podívejme na konfigurační soubor Samba.

Dokážete zjistit, jak je podobný logrotate.conf ? Než zatáhnu nad tímto dílem závěsy, pojďme si projít některé direktivy v tomto souboru:

/var/log/samba/* - Soubor protokolu, který má být otočen. V tomto případě se jedná o každý soubor protokolu v adresáři protokolu Samba.

notifempty - Směrnice uvádějící, že soubor by se neměl otáčet, pokud je prázdný.

olddir /var/log/samba/old - Místo pro uložení starých otočených protokolů.

missingok - Zastaví logrotate z vyvolání chyby, pokud soubor protokolu chybí.

copytruncate - Nezavírejte soubor protokolu. Vytvořte kopii, která bude otočeným, přejmenovaným souborem, a poté ořízněte soubor protokolu na nulovou velikost

Dokážete uhodnout, jaké jsou sharedscripts směrnice ano? Není třeba hádat - poraďte se s man stránku.

Zabalení

Doufejme, že to stačí k tomu, abyste mohli pracovat se správou protokolů. Logrotate je jednoduchý, ale výkonný nástroj pro rotaci s otevřeným zdrojovým kódem. Do dalšího příspěvku, šťastné otáčení!

[ Bezplatný online kurz:Technický přehled Red Hat Enterprise Linux. ]


Linux
  1. Jak vyprázdnit soubor protokolu v Linuxu

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

  3. Jak vytvořit vlastní rotaci souboru protokolu pomocí logrotate v Linuxu

  1. Jak spravovat soubory protokolu pomocí Logrotate v Linuxu

  2. Použití Logrotate v linuxu ke správě souborů protokolu (s příklady)

  3. Nastavení Centos/Linux logrotate na maximální velikost souboru pro všechny protokoly

  1. Jak přesunout soubor v Linuxu

  2. Linux – všechno je soubor?

  3. Jak vytisknout výstup příkazu Linuxu do souboru?