Top
Přejít na hlavní obsah
Služby
Návody > Seznam návodů > Jak používat Logrotate ke správě logů

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

01 července 2020

Linux Logrotate

Logrotate je software předinstalovaný ve většině verzí systému Linux. Umožňuje spravovat ukládané logy.

Aplikace v systému zaznamenávají logy diskových operací či chyb. Pokud je současně uloženo velké množství logů, mohou zaplnit disk a tím způsobit problémy.

Logrotate je nejčastějším řešením pro pravidelnou kontrolu logů a automatickou správu jejich rotace, komprese a mazání, pokud dojde k překročení určité velikosti nebo stáří souborů.

Základní nastavení

Logrotate umožňuje definovat některé základní parametry, které budou použity ve všech následujících konfiguracích v /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 logrotate.conf se kromě použití všech výše popsaných komentářů doporučuje také zkontrolovat všechny konfigurace přítomné v adresáři /etc/logrotate.d. Máte možnost rozdělit každou konfiguraci podle aplikace a/nebo kontextu.

Konfigurace logrotate definují sadu pravidel pro jeden nebo více souborů:

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

    [SETTINGS]

}

Typickým příklade 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 je brán v úvahu pouze soubor messages. Jeho rotace je nastavena na každý týden a do maximální výše 5 souborů. Při šesté rotaci bude tedy soubor z první rotace smazán:

-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

Mezi nejdůležitější parametry nastavení patří:

  •   •   daily, monthly, weekly, yearly: označuje, jak často má log rotovat;

  •   •   compress, nocompress: zda staré logy komprimovat či nikoliv;

  •   •   maxage: po kolika dnech jsou staré logy mazány;

  •   •   size: nastaví rotaci pouze v případě, že jsou zvolené soubory větší než zadaná hodnota. Je možné použít přípony k označení formátu velikosti (např. „k“ pro kilobajty nebo „M“ pro megabajty);

  •   •   rotate: počet logů, které jsou uloženy před tím, než jsou trvale odstraněny. Pokud je nastavena hodnota 0, logy budou mazány bez toho, aby docházelo k rotaci.

 

Pokud chcete nastavit stejná pravidla pro více souborů, můžete přidat více cest oddělených čárkou. Například:

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

      …
                 

}

Tato pravidla budou použita pro soubory custom_log, alternative_log a another_log.

Můžete využít také rotování všech logů v jednom adresáři, například:

/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 do názvu souboru, což usnadňuje orientaci v uložených logách.

/var/log/custom.log {

    size 100M

    dateext

    rotate 3

    compress

    maxage 100

}

Výše uvedená konfigurace bude archivovat soubor custom.log od chvíle, kdy dosáhne 100 megabajtů, v maximální počtu 3 kusů, nebo po 100 dnech. Soubor bude komprimován ve formátu gzip.

Poté, kdy logy projdou rotací, budou jejich názvy obsahovat také datum rotace, jak je ukázáno 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

Odesílání logů e-mailem

Logrotate umožňuje spouštět skripty v případě výskytu různých událostí, například po každé rotaci logů.

Jedním z příkladů využití je odesílání protokolů e-mailem po každém dokončení rotace. K nastavení této funkce 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" user@example.com -A /tmp/logpack.tar

Uložte výše uvedený soubor do svého domovského adresáře, například /home/map.com username_s//endend.sh a povolte potřebná oprávnění pomocí:

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

Nyní upravte konfiguraci logrotate následovně:

/var/log/messages {
                 

    ...

    

    postrotate 
                 

        …
                 

        /home/user/sendlog.sh

    endscript

}

Uložte konfiguraci a potvrďte změny.

Díky tomuto nastavení obdržíte e-mail s definovaným archivem logů po každém dokončení rotace.

Začněte používat FORPSI Cloud

 ZAČÍT HNED POŽÁDAT O VOUCHER*

(*) FORPSI vám poskytne voucher s kreditem v hodnotě 140 Kč pro cloudové služby

TECHNOLOGIČTÍ PARTNEŘI: