GNU/Linux >> Linux Esercitazione >  >> Linux

Configurazione di logrotate in Linux

Immagina come sarebbe la vita se un servizio critico andasse a gambe all'aria pochi minuti fa e tu fossi chiamato a salvare la situazione. Tenti di riavviare il servizio e semplicemente non darà. Non ci sono messaggi di errore, ma soprattutto, nessuna traccia di ciò che stava facendo prima di decidere di morire. Centouno cause scorrono nella tua mente e ti rendi conto che non c'è modo di sapere in quale direzione andare. Forse potresti riavviare del tutto il server. Solo forse.

Questo scenario è uno dei tanti in cui la registrazione può venire in tuo soccorso. Di solito, un software in esecuzione tiene un registro delle attività importanti relative alla sua esecuzione per il bene dei posteri in un file. Qualsiasi cosa può essere conservata in un file di registro in quanto aiuta gli sviluppatori e gli amministratori di sistema a sapere allo stesso modo cosa è successo con un particolare pezzo di software dopo il fatto. I file di registro vengono utilizzati anche da persone orientate alla sicurezza per rivedere l'accesso a determinate risorse. In rete o messaggistica, i file di registro registrano l'ora in cui i messaggi sono stati inviati o ricevuti per riferimento futuro.

I file di log, per definizione, continuano ad aumentare di dimensioni a seconda della frequenza e della verbosità con cui vengono aggiornati. Per servire al loro scopo, vengono normalmente aperti in modalità di aggiunta e contengono timestamp per aiutare con la risoluzione dei problemi e le analisi forensi. Tuttavia, ciò pone un problema poiché file di grandi dimensioni rendono il lavoro con i file di registro un processo ingombrante sia per il sistema che per il revisore umano. I registri vengono ruotati per mantenere i file di registro sostenibili. In poche parole, un nuovo file viene aperto mentre quello precedente viene chiuso e conservato o eliminato a seconda delle preferenze di progettazione. Ciò impedisce ai registri di riempire intere partizioni e di mettere in ginocchio i sistemi nel processo. Potresti aver notato la rotazione del registro al lavoro su un sistema nelle vicinanze. Guarda le date su boot.log file.

In questo caso, quando viene soddisfatta una condizione specifica, il file corrente viene rinominato aggiungendo una data per identificarlo e rintracciarlo e viene aperto un nuovo file con il nome originale, pronto a ricevere i messaggi di registro in arrivo.

Accesso a Linux (rsyslogd)

Come ci si potrebbe aspettare, l'accesso ai sistemi Linux, come il server CentOS 7 che sto usando a scopo illustrativo, si basa su un demone per facilitare la registrazione. Rsyslogd è il nome del vecchio servizio affidabile ed è open-source. In realtà, non è così vecchio. È una versione migliorata del syslog originale demone e possiede la capacità di elaborare e inoltrare rapidamente i registri a qualsiasi posizione in una rete IP. A parte syslog e rsyslog , c'è syslog-ng , che è un altro demone per la gestione dei log. Il gestore di registro predefinito dipende dalla distribuzione scelta. Rsyslog viene fornito di default in molte distribuzioni basate su Red Hat. Esegui il comando seguente per verificarne la presenza e la versione sul tuo sistema:

rsyslogd -v

Poiché si tratta di un demone, puoi verificare che sia attivo utilizzando systemd come segue:

systemctl status rsyslog

Se, per qualsiasi motivo, non è in esecuzione, puoi avviarlo tramite systemd .

[ Nota dell'editore:molti sistemi più recenti hanno sostituito rsyslogd con journald per la registrazione. Puoi scegliere una delle due opzioni, o anche entrambe, per gestire le tue esigenze di registrazione. Per ulteriori informazioni, vedere la documentazione per la distribuzione. Questo articolo presuppone che tu stia utilizzando rsyslogd.]

Logrotate

Logrotate è un'utilità Linux la cui funzione principale è - aspettarlo - ruotare i log. Se non è installato come parte dell'installazione predefinita del sistema operativo, può essere installato semplicemente eseguendo:

 yum install logrotate

Il file binario si trova in /bin/logrotate .

Installando logrotate , un nuovo file di configurazione viene inserito in /etc/ directory per controllare il comportamento generale dell'utilità durante l'esecuzione. Inoltre, viene creata una cartella per i file di configurazione degli snap-in specifici del servizio per richieste di rotazione del registro personalizzate. Ne parleremo un po' più tardi.

cron job giornaliero

Un cron il lavoro viene eseguito ogni giorno che avvia l'utilità. Ciò si ottiene effettuando una chiamata all'utilità nello standard cron cartella per i lavori quotidiani. Sebbene le specifiche della chiamata non rientrino nell'ambito di questo articolo, è sufficiente dire che la chiamata è solo uno script Bash che esegue logrotate binario, dicendo al sistema cosa fare in caso di errore.

Posizione del file di registro standard

I registri su un sistema Linux possono essere posizionati ovunque consentano le autorizzazioni. Tuttavia, a causa del fatto che cambiano continuamente in termini di dimensioni e contenuto, per definizione, la Gerarchia del file system prescrive che siano mantenuti nel /var/log/ directory.

Lo screenshot qui sotto è una sbirciatina al contenuto del mio /var/log directory.

File di configurazione ed esempi

/etc/logrotate.conf

Il primo file da prendere in considerazione per quanto riguarda la funzione di logrotate è logrotate.conf . Questo file di configurazione contiene le direttive su come ruotare i file di registro per impostazione predefinita. Se non esiste un insieme specifico di direttive, l'utilità agisce in base alle direttive in questo file.

Di seguito è riportato un esempio del contenuto del file di configurazione.

Esaminiamo alcune delle direttive per avere un'idea della flessibilità di logrotate. Per grazia, l'autore dell'utilità ha inserito abbastanza commenti per far partire un principiante. Potresti anche vedere il man pagina per un'immersione più profonda. Le direttive weekly , dateext , compress , create e rotate 4 dichiara che i file di registro devono essere ruotati settimanalmente , che la data di rotazione sia utilizzata come suffisso identificativo dei file ruotati, che i file ruotati devono essere compressi , che deve essere creato un nuovo file per ricevere i log in entrata e non più di quattro i registri dovrebbero essere conservati. In altre parole, il quinto registro più recente dovrebbe essere eliminato. Si noti inoltre che sul mio sistema, a causa della presenza del # prima di compress direttiva, la compressione è disabilitata per impostazione predefinita.

Inoltre, esiste una direttiva per includere una cartella particolare:/etc/logrotate.d . Questa cartella viene utilizzata per le richieste di rotazione del registro specifiche del pacchetto. Pacchetti progettati per sfruttare logrotate trascina i file di configurazione in questa directory. Questa modularità è in armonia con lo spirito di Linux e migliora l'estendibilità dell'utilità. I file di configurazione contengono direttive simili e file di registro personalizzati ove applicabile. Puoi anche creare il tuo file di configurazione per gestire qualsiasi file di registro di tua scelta. Basta dare un nome al file, aggiungere il file di registro da elaborare e inserirlo in questa directory. Infine, ci sono le direttive per i file di registro senza pacchetti proprietari, come wtmp e altri file di registro di sistema. L'man la pagina è piena di più direttive e, per gli utenti che hanno esigenze di rotazione più specifiche, ti consiglio vivamente di dargli un'occhiata.

/etc/logrotate.d

Fortunatamente, ho parlato molto su /etc/logrotate.d directory, quindi senza troppi indugi, lascia che ti mostri il contenuto di questa directory per portare a casa le idee condivise in precedenza.

E solo per una buona misura, diamo un'occhiata al file di configurazione di Samba.

Riesci a vedere quanto è simile a logrotate.conf ? Prima di tirare le tende su questo pezzo, esaminiamo alcune delle direttive in questo file:

/var/log/samba/* - Il file di registro da ruotare. In questo caso, si tratta di ogni file di registro nella directory di registro di Samba.

notifempty - Direttiva che stabilisce che il file non deve essere ruotato se è vuoto.

olddir /var/log/samba/old - Posizione in cui archiviare i vecchi registri ruotati.

missingok - Interrompe logrotate dalla generazione di un errore se il file di registro è mancante.

copytruncate - Non chiudere il file di registro. Crea una copia, che sarà il file ruotato e rinominato, quindi tronca il file di registro a una dimensione zero

Riesci a indovinare cosa sono gli sharedscripts direttiva fa? Non c'è bisogno di indovinare:consulta man pagina.

Conclusione

Si spera che questo sia sufficiente per iniziare a gestire i log. Logrotate è un'utilità di rotazione open source semplice ma potente. Al prossimo post, buona rotazione!

[ Corso online gratuito:panoramica tecnica di Red Hat Enterprise Linux. ]


Linux
  1. Come gestire i file di registro utilizzando Logrotate in Linux

  2. Utilizzo di Logrotate in Linux per gestire i file di registro (con esempi)

  3. Linux:tutto è un file?

  4. Come creare una rotazione del file di registro personalizzata tramite logrotate in Linux

  5. Come stampare l'output del comando Linux su un file?

Comando file Linux

Come creare un file in Linux

Meno comandi in Linux

Comando Gzip in Linux

Comando Gunzip in Linux

Come modificare il file di registro di Sudo predefinito in Linux