GNU/Linux >> Znalost Linux >  >> Linux

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

Logrotate je software předinstalovaný ve většině distribucí Linuxu, který vám umožňuje spravovat dlouhodobé ukládání a organizaci souborů protokolu.

Aplikace v systému často zaznamenávají protokol operací s diskem nebo problémů. Pokud nejsou pravidelně odstraňovány, mohou se tyto soubory zvětšit, zaplnit disk a způsobit poruchy.

Logrotate je nejběžnějším řešením pro pravidelnou kontrolu souborů protokolu a automatickou správu jejich rotace, komprese a eliminace, když je překročena určitá velikost a/nebo stáří.

Základní konfigurace

Logrotate umožňuje definovat některé základní parametry, které budou používány všemi následujícími konfiguracemi souboru v cestě /etc/logrotate.conf:

# Set a weekly rotation

weekly


# Set the number of rotations to save

rotate 4
              

# make new log file

create
              

# Include all configurations files

include /etc/logrotate.d

V tomto výpisu z logrotate.conf se kromě použití všech výše popsaných parametrů doporučuje také čtení všech konfigurací přítomných v adresáři /etc/logrotate.d. Tímto způsobem můžete každou konfiguraci rozdělit podle aplikace a/nebo kontextu.

Konfigurace Logrotate definují sadu pravidel pro 1 nebo více souborů:

[FILE] [FILE?] [FILE?] {

    [SETTINGS]

}

Klasickým příkladem je konfigurace / var / log / messages:

/var/log/messages {
                 

    # Save 5 rotations

    rotate 5
                 

    # Rotating files every week 

    weekly 
                 

    postrotate 

        /usr/bin/killall -HUP syslogd

    endscript

}

Ve výše uvedeném příkladu se bere v úvahu pouze soubor zprávy. . a jeho rotace je nastavena každý týden, p na maximálně 5. Proto na konci páté rotace soubory protokolu:

-rw-r----- 1 root  adm 1215 Jul 29 06:47 messages

-rw-r----- 1 root  adm 3895 Jul 28 06:49 messages.1

-rw-r----- 1 root  adm 454 Jul 21 06:37 messages.2.gz

-rw-r----- 1 root  adm 506 Jul 15 06:40 messages.3.gz

-rw-r----- 1 root  adm 456 Jul 7 06:41 messages.4.gz

Některá z nejdůležitějších nastavení jsou:

  • denně, měsíčně, týdně, ročně:označuje, jak často se má soubor protokolu otáčet

  • compress, nocompress:zda komprimovat staré rotace souborů nebo ne

  • maxage:Po kolika dnech budou staré rotace odstraněny

  • velikost:Nastaví otočení pouze v případě, že uvedené soubory jsou větší než zadaná velikost. K označení formátu velikosti lze použít přípony (např. "k" pro kilobajty, "M" pro megabajty)

  • rotovat:Počet otočených protokolů, které je třeba uložit, než budou trvale odstraněny. Pokud je nastaveno na 0, soubory protokolu budou vymazány, aniž by byly otočeny.

V případě, že chcete nastavit stejná pravidla pro více souborů, můžete připojit více cest tak, že je oddělíte čárkou. Například:

/var/log/custom_log, /var/log/alternative_log_file, /var/log/another_log {
                 

      …
                 

}

Tato konfigurace bude použita pro soubory custom_log, alternative_log_file a other_log.

Alternativně můžete použít masky souborů jako:

/var/custom/logs/*, /var/log/custom_log {
                 

      # This configuration will rotate all the files in the directory. 

      # /var/custom/logs/* e il file /var/log/custom_log
                 

      ...

}

Použití nastavení dateext

Nastavení dateext umožňuje přidat datum rotace k názvu souboru, aby bylo možné snadno rozpoznat data protokolů.

/var/log/custom.log {

    size 100M

    dateext

    rotate 3

    compress

    maxage 100

}

Výše uvedená konfigurace archivuje soubor custom.log, jakmile dosáhne 100 milionů, maximálně třikrát nebo po 100 dnech. Prostřednictvím možnosti komprimovat bude archivovaný soubor také komprimován ve formátu gzip.

Po otočení budou mít názvy souborů datum otočení, jak je uvedeno níže:

# ls /var/log

-rw-r--r--  1 user user 8980 2019-06-09 22:10 custom.log-20180609.gz

-rwxrwxrwx 1 user user    0 2019-06-09 22:11 custom.log

Protokoly zasílání e-mailem

Logrotate vám umožňuje spouštět přizpůsobené skripty, když nastanou určité události, například po každém otočení protokolu, pomocí klíčových slov postrotate / endscript.

Jedním z možných použití by mohlo být odeslání protokolů e-mailem při dokončení rotace. Chcete-li pokračovat, nejprve vytvořte skript pro odeslání souborů na vaši e-mailovou adresu:

#!/bin/bash
                 

# Get all logs

tar -cvf /tmp/logpack.tar /var/log/messages*
                 

# Send logs as attachment 

echo "Log" | mail -s "log" [email protected] -A /tmp/logpack.tar

Uložte si výše uvedený soubor do svého domovského adresáře, například /home/map.com username_s//endend.sh a ujistěte se, že jste povolili potřebná oprávnění prostřednictvím:

# sudo chmod u+x /home/user/sendlog.sh

Nyní upravte konfigurační soubor logrotate následovně:

/var/log/messages {
                 

    ...

    

    postrotate 
                 

        …
                 

        /home/user/sendlog.sh

    endscript

}

Chcete-li použít změny, uložte konfiguraci.

Po dokončení obdržíte e-mail s výše popsaným archivem protokolu při každém otočení protokolu.


Linux
  1. Jak spravovat soubory protokolu pomocí Logrotate v Linuxu

  2. Jak přejmenovat soubory konkrétně v seznamu, který bude Wget používat?

  3. Jak vyprázdnit soubor protokolu v Linuxu

  1. Jak nainstalovat a používat logrotate ke správě souborů protokolu v Ubuntu 18.04 LTS

  2. Jak používat Logrotate ke správě protokolů na Ubuntu

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

  1. Jak spravovat možnosti souborů Linux

  2. Jak použít rsyslog k vytvoření serveru pro agregaci protokolů Linux

  3. Jak používat Netcat k přenosu souborů v systému Linux