GNU/Linux >> Linux Esercitazione >  >> Linux

Come gestire i file di registro utilizzando Logrotate in Linux

Pochi giorni fa abbiamo pubblicato una guida che descriveva come configurare il server Rsyslog centralizzato sul sistema CentOS. Oggi, in questa guida, vedremo come gestire i file di registro utilizzando Logrotate su Linux. Questa utilità semplifica l'amministrazione dei file di registro, particolarmente utile per i sistemi che producono grandi volumi di file di registro ogni giorno. Come suggerisce il nome, LogRotate ruota i registri completamente fuori dal sistema a intervalli regolari. Consente inoltre la rotazione, la compressione, la rimozione e l'invio automatico dei file di registro. Ogni file di registro può essere gestito giornalmente, settimanalmente, mensilmente o quando diventa troppo grande.

Gestisci i file di registro utilizzando Logrotate

Installa Logrotate

Logrotate è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux.

Su Arch Linux e i suoi derivati, è necessario eseguire il comando seguente per installarlo.

$ sudo pacman -S logrotate

Su sistemi basati su RPM, come RHEL, CentOS, Scientific Linux, puoi installarlo usando il comando:

$ sudo yum install logrotate

Su Debian, Ubuntu:

$ sudo apt-get install logrotate

Su SUSE, apri SUSE:

$ sudo znf install logrotate
Scarica - eGuide gratuita:"22 utili modifiche per far sentire Ubuntu come a casa"

Configura Logrotate

Il file di configurazione principale di LogRotate è /etc/logrotate.conf .

Ecco il contenuto predefinito di questo file nel mio sistema Arch. Questo output di file potrebbe avere un aspetto leggermente diverso su altre distribuzioni Linux.

$ cat /etc/logrotate.conf

Risultato di esempio:

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# restrict maximum size of log files
#size 20M

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# Logs are moved into directory for rotation
# olddir /var/log/archive

# Ignore pacman saved files
tabooext + .pacorig .pacnew .pacsave

# Arch packages drop log rotation information into this directory
include /etc/logrotate.d

/var/log/wtmp {
 monthly
 create 0664 root utmp
 minsize 1M
 rotate 1
}

/var/log/btmp {
 missingok
 monthly
 create 0600 root utmp
 rotate 1
}

Vediamo cosa fa ciascuna opzione nel file di configurazione sopra.

  • settimanale - Ruota i log ogni settimana.
  • ruota di 4 -  Per impostazione predefinita, LogRotate conserva le quattro settimane (un mese, ovviamente) di file di registro. Poiché ruota tutti i file di registro dopo un determinato periodo di tempo, potrebbe essere necessario conservare un backup di file di registro importanti se non vuoi perderli.
  • taglia 20M - Ruota i file di registro se hanno raggiunto la dimensione di 20 MB. Per impostazione predefinita, questa opzione è disabilitata. Per abilitarlo, decommentalo.
  • crea - Crea nuovi file di registro una volta dopo aver ruotato i vecchi file di registro. Questa opzione è abilitata per impostazione predefinita.
  • comprimi - Comprime i file di registro. Inoltre, non comprime i registri per impostazione predefinita. Se vuoi comprimere i log, decommenta questa riga.
  • /etc/logrotate.d/ - Questa directory contiene i file delle regole di registro specifici dell'applicazione.
  • OK mancante - Se il file di registro manca, Logrotate passerà a quello successivo senza emettere un messaggio di errore.

Logrotate segmenta i file di registro e comprime i registri in base alle regole specificate in /etc/logrotate.d/ directory.

Diamo un'occhiata al contenuto di questa directory.

$ ls /etc/logrotate.d/

L'output di esempio sarebbe:

lirc  samba

Come puoi vedere nell'output sopra, contiene vari file di regole per tutti i registri gestiti da LogRotate. Per visualizzare una specifica regola del registro dell'applicazione, ad esempio samba, eseguire:

$ cat /etc/logrotate.d/samba

Risultato di esempio:

/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log {
 notifempty
 missingok
 sharedscripts
 copytruncate
 postrotate
 /bin/kill -HUP `cat /var/run/samba/*.pid 2>/dev/null` 2>/dev/null || true
 endscript
}

Ecco,

  • notificato - Indica che i file di registro non verranno ruotati se è vuoto.
  • copia tronca - Tronca il file di registro originale dopo aver creato una copia.
  • postrotate/endscript - Le righe tra postrotate e endscript vengono eseguite dopo la rotazione del file di registro.
  • script condiviso - Gli script vengono eseguiti una sola volta, indipendentemente dal numero di registri che corrispondono al modello con caratteri jolly.

Puoi anche creare i tuoi file di regole di log nella directory /etc/logrotate.d/ e definire le tue regole.

Cron esegue quotidianamente l'utilità logroate alla ricerca di file di registro da ruotare. Puoi specificare le regole di rotazione automatica dei log in /etc/cron.daily/logrotate file per evitare l'intervento manuale dell'utente. Eseguirà la rotazione del registro ogni singolo giorno a un'ora specifica.

Per verificare se i file di registro stanno ruotando o meno, eseguire:

$ cat /var/lib/logrotate.status

Risultato di esempio:

logrotate state -- version 2
"/var/log/samba/log.smbd" 2016-5-12-11:0:0
"/var/log/lircd" 2016-6-15-10:0:0
"/var/log/httpd/*log" 2016-5-12-11:0:0
"/var/log/wtmp" 2016-5-6-10:0:0
"/var/log/samba/*.log" 2016-5-12-11:0:0
"/var/log/btmp" 2017-4-1-11:36:53
"/var/log/samba/log.nmbd" 2016-5-12-11:0:0

Per maggiori dettagli, esegui logrotate immettendo il seguente comando:

$ logrotate --help

Oppure,

$ man logrotate

Questo è tutto per ora gente. Logrotate è uno strumento di rotazione dei registri semplice ma utile che semplifica la gestione dei registri. Non è necessario lottare con complesse fasi di configurazione e installazione. Tutto è autoesplicativo. Se gestisci un sistema che produce un numero elevato di file di registro, puoi ruotarli periodicamente utilizzando Logrotate.

Saluti!


Linux
  1. Come eseguire il confronto riga per riga dei file in Linux usando il comando diff

  2. Come scrivere file di registro nella RAM usando Log2ram in Linux

  3. File di registro di Linux

  4. Come utilizzare Logrotate per gestire i file di registro

  5. Come ordinare i file in Linux usando il comando di ordinamento

Come eseguire il backup di file e directory utilizzando Rsync in Linux

Come sincronizzare i file in due modi utilizzando Osync Script in Linux

Come visualizzare i file di registro Nginx su Linux

Come visualizzare i file di registro di Apache su Linux

Come copiare file in Linux usando il comando CP

Come impostare e gestire la rotazione dei registri utilizzando Logrotate in Linux