Protokolové soubory jsou pro zabezpečení systému Linux nejdůležitější. nástroj logrotate je speciálně navržen pro zjednodušení správy souborů protokolu v systému Linux, který umožňuje automatické otáčení, kompresi, odstraňování a zasílání souborů protokolu. Můžete snadno nastavit logrotate pro zpracování souboru protokolu denně, týdně, měsíčně. Program logrotate používaný k rotaci souborů protokolu odstraněním nejstarších z vašeho systému a vytvořením nových souborů protokolu.
V tomto tutoriálu vysvětlím, jak používat logrotate ke správě protokolů na serveru Ubuntu 18.04.
Požadavky
- Server se serverem Ubuntu 18.04.
- Uživatel bez oprávnění root s právy sudo.
Instalovat Logrotate
Ve výchozím nastavení je logrotate k dispozici na serveru Ubuntu 18.04 LTS. Pokud ne, můžete jej nainstalovat spuštěním následujícího příkazu:
sudo apt-get install logrotate -y
Po instalaci logrotate můžete zkontrolovat verzi logrotate pomocí následujícího příkazu:
sudo logrotate
Výstup:
logrotate 3.11.0 - Copyright (C) 1995-2001 Red Hat, Inc. This may be freely redistributed under the terms of the GNU Public License Usage: logrotate [-dfv?] [-d|--debug] [-f|--force] [-m|--mail=command] [-s|--state=statefile] [-v|--verbose] [-l|--log=STRING] [--version] [-?|--help] [--usage] [OPTION...]
Konfigurovat Logrotate
Ve výchozím nastavení je hlavní konfigurační soubor logrotate.conf umístěn v /etc/logrotate.conf. Další konfigurační soubory jsou k dispozici na /etc/logrotate.d. Můžete je vypsat pomocí následujícího příkazu:
ls /etc/logrotate.d
Výstup:
alternatives apport dpkg mysql-server rsyslog unattended-upgrades apache2 apt lxd openproject ufw
Hlavní možnosti logrotate jsou uvedeny níže:
chybějící :Pokud protokol chybí, nevyvolávat chybu
týdně :rotuje soubory protokolu jednou týdně
vytvořit :Starý soubor se uloží pod novým názvem a vytvoří se nový soubor
komprimovat :logrotate komprimované soubory protokolu pomocí gzip pro úsporu místa
otočit 4 :logrotate otočí daný protokol čtyřikrát, než jej smaže, takže čtyři týdny protokolů zůstanou online
notifyempty :Neotáčejte soubor protokolu, když je prázdný
Ve výchozím nastavení se logrotate spouští denně spuštěním shellového skriptu /etc/cron.daily/logrotate. Pojďme otestovat logrotation apache spuštěním následujícího příkazu:
sudo logrotate -d /etc/logrotate.d/apache2
Výstup:
reading config file /etc/logrotate.d/apache2 Reading state from file: /var/lib/logrotate/status Allocating hash table for state file, size 64 entries Handling 1 logs rotating pattern: /var/log/apache2/*.log after 1 days (14 rotations) empty log files are not rotated, old logs are removed considering log /var/log/apache2/access.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) considering log /var/log/apache2/error.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) considering log /var/log/apache2/other_vhosts_access.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) not running prerotate script, since no logs will be rotated not running postrotate script, since no logs were rotated
Ve výchozím nastavení se logrotate spouští jako denní úloha cron. Více informací o úloze cron naleznete v /etc/cron.daily/logrotate. Můžete také nakonfigurovat úlohu cron pro logrotate tak, aby se spouštěla každou hodinu, týden a rok.