Oktatóanyagok > Hogyan lehet a Logrotate-ot használni a naplófájlok kezelésére?

Hogyan lehet a Logrotate-ot használni a naplófájlok kezelésére?

Közzétéve: 16 január 2020

Linux Logrotate

A Logrotate a legtöbb Linux disztribúcióra előre telepített szoftver, amely lehetővé teszi a naplófájlok hosszú távú mentésének és szervezésének kezelését.

A rendszerben lévő alkalmazások gyakran rögzítik a lemez műveleteinek vagy problémáinak naplóját. Ha ezeket rendszeres időközönként nem törli, akkor ezek a fájlok növekedhetnek, megtölthetik a lemezt, és meghibásodásokat okozhatnak.

A Logrotate a legelterjedtebb megoldás a naplófájlok időszakos ellenőrzésére és azok rotációjának, tömörítésének és megszüntetésének automatikus kezelésére, ha egy bizonyos méretet és / vagy időtartamot túllépnek.

Alap konfigurációs lépések

A Logrotate lehetővé teszi néhány alapvető paraméter definiálását, amelyeket a fájl összes következő konfigurációja használni fog az /etc/logrotate.conf elérési útvonalon:

# 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

A logrotate.conf ebben a kivonatában az összes fent leírt paraméter alkalmazása mellett az /etc/logrotate.d könyvtárban található összes konfiguráció elolvasása is ajánlott. Ezzel feloszthatja az egyes konfigurációkat alkalmazás és/vagy kontextus szerint.

A Logrotate konfigurációk meghatároznak egy vagy több fájlhoz tartozó szabálykészletet:

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

    [SETTINGS]

}

Klasszikus példa a / var / log / messages konfigurációjára:

/var/log/messages {
                 

    # Save 5 rotations

    rotate 5
                 

    # Rotating files every week 

    weekly 
                 

    postrotate 

        /usr/bin/killall -HUP syslogd

    endscript

}

A fenti példában csak az üzenetfájlt vesszük figyelembe, és annak rotációját minden héten, p értékre legfeljebb 5-re állítjuk be. Ezért az ötödik rotáció végén a naplófájlok:

-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

A legfontosabb beállítások közül néhány:

  • daily, monthly, weekly, yearly: jelzi, hogy milyen gyakran kell rotálni a naplófájlt,

  • compress, nocompress: tömöríteni kell-e a régi fájlrotációkat,

  • maxage: hány nap után szűnnek meg a régi rotációk,

  • size: csak akkor állítja be a rotációt, ha a jelzett fájlok nagyobbak, mint a megadott méret. Az utótagokkal lehet megjelölni a méret formátumát (pl. "K" kilobájt, "M" megabájt esetén),

  • rotate: a rotált naplók száma, amelyeket menteni kell, mielőtt véglegesen eltávolítanák őket. Ha 0-ra van állítva, akkor a naplófájlok rotáció nélkül törlődnek.

Abban az esetben, ha ugyanazokat a szabályokat akarja beállítani több fájlhoz, több útvonalat is hozzáfűzhet, vesszővel elválasztva őket. Például:

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

      …
                 

}

Ezt a konfigurációt a custom_log fájl, az alternative_log fájl és egy another_log számára kell használni.

Alternatively you can use file masks such as:

/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
                 

      ...

}

A dateext beállítás használata

A dateext beállítás lehetővé teszi a rotálás dátumának hozzáadását a fájl nevéhez, így a naplók adatai könnyen felismerhetők.

/var/log/custom.log {

    size 100M

    dateext

    rotate 3

    compress

    maxage 100

}

A fenti konfiguráció archiválja a custom.log fájlt, amint eléri a 100 MB-ot, legfeljebb háromszor, vagy 100 nap elteltével. A tömörítés opcióval az archivált fájl tömörítésre kerül gzip formátumban is.

A rotálása után, a fájlneveken az alábbi dátum lesz látható:

# 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

Naplók e-mailezése

A Logrotate lehetővé teszi testreszabott parancsfájlok futtatását bizonyos események bekövetkezésekor, például minden log rotálás után, a postrotate / endcript kulcsszavak használatával.

Az egyik lehetséges felhasználás lehet a naplók elküldése e-mailben a rotálás befejezésekor. A folytatáshoz először hozzon létre egy szkriptet, amely elküldi a fájlokat az e-mail címére:

#!/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

Mentse a fenti fájlt a saját könyvtárába, például /home/map.com felhasználónév_s // endend.sh módon, és győződjön meg róla, hogy engedélyezte a szükséges hozzáféréseket:

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

Most szerkessze a logrotate konfigurációs fájlt az alábbiak szerint:

/var/log/messages {
                 

    ...

    

    postrotate 
                 

        …
                 

        /home/user/sendlog.sh

    endscript

}

A módosítások alkalmazásához mentse a konfigurációt.

Miután elkészült, minden egyes log fájl rotálásakor e-mailt kap a fent leírt naplóarchívummal.