I file di registro sono i più importanti per la sicurezza del sistema Linux. lo strumento logrotate è appositamente progettato per semplificare l'amministrazione dei file di registro su un sistema Linux che consente la rotazione, la compressione, la rimozione e l'invio automatico dei file di registro. Puoi facilmente impostare logrotate per gestire un file di registro giornalmente, settimanalmente, mensilmente. Il programma logrotate utilizzato per ruotare i file di registro rimuovendo quelli più vecchi dal sistema e creando nuovi file di registro.
In questo tutorial spiegherò come usare logrotate per gestire i log sul server Ubuntu 18.04.
Requisiti
- Un server che esegue il server Ubuntu 18.04.
- Un utente non root con privilegi sudo.
Installa Logrotate
Per impostazione predefinita, logrotate è disponibile nel server LTS di Ubuntu 18.04. In caso contrario, puoi installarlo eseguendo il seguente comando:
sudo apt-get install logrotate -y
Una volta che logrotate è stato installato, puoi controllare la versione di logrotate usando il seguente comando:
sudo logrotate
Uscita:
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...]
Configura Logrotate
Per impostazione predefinita, il file di configurazione principale di logrotate logrotate.conf si trova in /etc/logrotate.conf. Altri file di configurazione sono disponibili in /etc/logrotate.d. Puoi elencarli con il seguente comando:
ls /etc/logrotate.d
Uscita:
alternatives apport dpkg mysql-server rsyslog unattended-upgrades apache2 apt lxd openproject ufw
Le principali opzioni di logrotate sono elencate di seguito:
manca bene :non generare un errore se manca il registro
settimanale :ruota i file di registro una volta alla settimana
crea :Il vecchio file viene salvato con un nuovo nome e viene creato un nuovo file
comprimi :logrotate comprime i file di registro usando gzip per risparmiare spazio
ruota 4 :logrotate ruota un determinato registro quattro volte prima di eliminarlo, quindi mantiene online quattro settimane di registri
notifica vuoto :non ruotare il file di registro quando è vuoto
Per impostazione predefinita, logrotate viene eseguito quotidianamente eseguendo lo script della shell /etc/cron.daily/logrotate. Testiamo la logrotation di apache eseguendo il comando seguente:
sudo logrotate -d /etc/logrotate.d/apache2
Uscita:
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
Per impostazione predefinita, logrotate viene eseguito come cron job giornaliero. Puoi controllare /etc/cron.daily/logrotate per ulteriori informazioni su cron job. Puoi anche configurare il lavoro cron per logrotate per l'esecuzione oraria, settimanale e annuale.