Come gestire i log dei file Linux con Achieve

Le distribuzioni Linux sono ideali per qualsiasi tipo di ambiente aziendale grazie alla loro capacità di adattarsi a nuove funzioni e nuovi ruoli e, soprattutto, gratis grazie al codice aperto.

Abbiamo migliaia di applicazioni o utilità progettate per il controllo centralizzato su tutti gli aspetti del sistema e in questo modo, come amministratori o personale IT, sappiamo con certezza quando si verifica un guasto e sappiamo come risolverlo.

All'interno di questa vasta gamma di possibilità troviamo Logrotate, che è un'utilità della distribuzione e la sua funzione è la rotazione e la compressione dei file di registro.

Questa operazione è importante poiché, non effettuando alcuna azione su questi file, lo spazio sull'hard disk può risentirne, portando ad altri tipi di errori generali.

Per questo caso utilizzeremo Ubuntu 17.10 e Logrotate è installato per impostazione predefinita ed è già configurato per gestire le attività di rotazione dei log di tutti i pacchetti installati, incluso rsyslog, il processore di log di sistema predefinito.

Successivamente, vedremo come installare e utilizzare questa preziosa utility.

1. Identificare la versione di Logrotate installato Linux


Il primo passo da compiere è conoscere in dettaglio quale versione di Logrotate abbiamo in, in questo caso, Ubuntu 17.10. Per fare ciò eseguiamo il seguente comando:
 logrotate -version
Il risultato sarà il seguente:

INGRANDIRE

Se Logrotate non è installato, verrà visualizzato un errore. Possiamo installare lo strumento utilizzando il gestore di pacchetti della distribuzione Linux utilizzata.

Se Logrotate è installato ma il numero di versione è significativamente diverso, potremmo avere problemi con alcune impostazioni dell'utilità. Possiamo consultare la documentazione della versione specifica di Logrotate direttamente nella sua pagina man:

 uomo logrotato
Possiamo vedere la struttura di configurazione predefinita di Logrotate nella distribuzione Linux:

INGRANDIRE

2. Logrotate la configurazione di Linux


Le informazioni di configurazione di Logrotate possono generalmente essere trovate in due posti nel caso di Ubuntu:

etc / logrotate.confQuesto file contiene alcune impostazioni predefinite e imposta la rotazione per alcuni registri che non sono di proprietà di alcun pacchetto di sistema. Fa anche uso di un'istruzione include per ottenere le impostazioni da qualsiasi file nella directory /etc/logrotate.d.

/etc/logrotate.d/Questa directory è dove qualsiasi pacchetto che installiamo e che necessita di aiuto con la rotazione dei log posizionerà la sua configurazione Logrotate. In un'installazione standard, i file dovrebbero già esistere qui per gli strumenti di sistema di base, come apt, dpkg, rsyslog, ecc.

Per impostazione predefinita, logrotate.conf configurerà le rotazioni dei registri settimanali (settimanali), con i file di registro di proprietà dell'utente root e del gruppo syslog (su root syslog), con quattro file di registro che vengono mantenuti (ruota 4) e i nuovi file vengono creati vuoti record. creato dopo che la corrente è stata ruotata (crea).

Possiamo accedere al file di configurazione di Logrotate di un pacchetto in /etc/logrotate.d usando l'utility cat:

 cat /etc/logrotate.d/apt

INGRANDIRE

Questo file contiene blocchi di configurazione per due diversi file di log nella directory /var/log/apt/: term.log e history.log. Entrambi hanno le stesse opzioni.

Qualsiasi opzione non impostata in questi blocchi di configurazione erediterà i valori predefiniti o quelli impostati in /etc/logrotate.conf. Le opzioni configurate per i registri apt sono:

ruota di 12Conserva dodici vecchi file di registro.

MensileRuota una volta al mese.

ComprimereSi occupa di comprimere i file ruotati. Questo usa gzip per impostazione predefinita e produce file che terminano con l'estensione .gz. Il comando compression può essere modificato utilizzando l'opzione compresscmd.

mancanteNon scrive un messaggio di errore se manca il file di registro.

notifemptyNon ruota il file di registro se è vuoto.

Sono disponibili molte altre opzioni di configurazione.

3. Configura un servizio Linux Logrotate e aggiungi la configurazione a /etc/logrotate.d/


Successivamente, configureremo un file di configurazione per gestire i log di un servizio che creeremo.

Per gestire i file di registro per le applicazioni al di fuori dei servizi di sistema preconfezionati e preconfigurati, abbiamo due opzioni:

  • Crea un nuovo file di configurazione di Logrotate e inseriscilo nel percorso /etc/logrotate.d/. Questo verrà eseguito giornalmente come utente root insieme a tutti gli altri processi Logrotate standard.
  • Crea un nuovo file di configurazione ed eseguilo al di fuori della configurazione Logrotate predefinita di Ubuntu. Questo è necessario solo se abbiamo bisogno di eseguire Logrotate come utente non root, o se vuoi ruotare i log più frequentemente che giornalmente (un'impostazione oraria in /etc/logrotate.d/ non sarebbe efficace, perché l'impostazione Logrotate del sistema viene eseguito solo una volta al giorno).

In questo caso vogliamo configurare la rotazione dei log per un server web che metta un access.log e un error.log nel percorso /var/log/solvetic-app/. Verrà eseguito come utente e gruppo www-data.

Per aggiungere una configurazione a /etc/logrotate.d/, dobbiamo prima aprire un nuovo file come segue:

 sudo nano /etc/logrotate.d/solvetic-app
lì aggiungeremo le seguenti righe:
 /var/log/solvetic-app/*.log {daily missingok ruotare 14 comprimere notifempty creare 0640 www-data www-data sharedscripts postrotate systemctl ricaricare solvetic-app endscript}

INGRANDIRE

Possiamo salvare le modifiche usando la combinazione di tasti Ctrl + O e uscire dall'editor usando Ctrl + X.

Alcune delle nuove direttive di configurazione in questo file sono:

crea 0640 www-data www-dataQuesto parametro crea un nuovo file di registro vuoto dopo la rotazione, con le autorizzazioni specificate (0640), proprietario (www-data) e gruppo (anche www-data).

script condivisiQuesto flag indica che gli script aggiunti alla configurazione vengono eseguiti solo una volta per esecuzione, anziché per ogni file ruotato.

postrotate in endscriptQuesto blocco contiene uno script da eseguire dopo la rotazione del file di registro. In questo caso, possiamo ricaricare la nostra app solvetic. A volte è necessario che l'applicazione passi al file di registro appena creato.

Dobbiamo tenere conto delle esecuzioni postrotate prima che i log vengano controllati. La compressione potrebbe richiedere molto tempo e il software dovrebbe passare immediatamente al nuovo file di registro. Per le attività che devono essere eseguite dopo che i record sono stati compressi, utilizzare invece il blocco lastaction.

Dopo aver personalizzato la configurazione più adatta alle nostre esigenze e salvate in /etc/logrotate.d, possiamo verificarla eseguendo la riga seguente.

 sudo logrotate /etc/logrotate.conf -debug
Questo chiama logrotate, punta al file di configurazione standard e attiva la modalità di debug:

INGRANDIRE

Verranno stampate le informazioni sui file di registro gestiti da Logrotate e su ciò che è in esecuzione su di essi. Se tutto sembra a posto, abbiamo finito. Il processo Logrotate standard verrà eseguito una volta al giorno e includerà le nuove impostazioni.

4. Come creare una configurazione di registrazione autonoma Lograte Linux


Per prima cosa, creeremo un file di configurazione nella nostra home directory. Possiamo aprirlo con un editor di testo:
 sudo nano /home/solvetic/logrotate.conf
Nel nuovo file incolleremo quanto segue:
 /home/solvetic/logs/*.log {mancante ogni oraok ruotare 24 comprimere creare}

INGRANDIRE

Possiamo salvare le modifiche e uscire dal file.

Questa impostazione ruoterà i file ogni ora, comprimendo e preservando ventiquattro vecchi record e creando un nuovo file di registro per sostituire il file ruotato. Per verificare che funzioni correttamente, possiamo creare un file di registro eseguendo le seguenti righe:

 cd ~ sudo mkdir logs sudo touch logs / access.log

INGRANDIRE

Ora che abbiamo un file di registro vuoto nel posto giusto, eseguiremo il comando logrotate.
Eseguiremo quanto segue:

 logrotate /home/solvetic/logrotate.conf --state / home /solvetic / logrotate-state -verbose

INGRANDIRE

Il parametro --verbose stamperà informazioni dettagliate su ciò che stiamo eseguendo con Logrotate. In questo caso, vedremo che nulla è ruotato. Questa è la prima volta che Logrotate vede questo file di registro e, come sappiamo, il file ha zero ore e non dovrebbe essere ruotato.

Se osserviamo il file di stato, vedremo che Logrotate ha registrato alcune informazioni sull'esecuzione che abbiamo eseguito:

 gatto / domestico / solvetico / logrotate-state
Vedremo quanto segue:

INGRANDIRE

Logrotate ha annotato i record che ha analizzato e l'ultima volta che li ha considerati per la rotazione. Se eseguiamo lo stesso comando un'ora dopo, il record verrà ruotato come previsto. Se vuoi forzare Logrotate a ruotare il file di registro quando non dovrebbe altrimenti, possiamo usare il flag --force:

 sudo logrotate /home/solvetic/logrotate.conf --state / home/solvetic / logrotate-state --verbose -force

5. Creazione di un'attività pianificata su Achieve Linux


Infine, dobbiamo configurare un cron job per eseguire Logrotate ogni ora. Per fare ciò, apriamo il crontab del nostro utente eseguendo quanto segue:
 crontab -e
Nel file aperto aggiungeremo la seguente riga:
 14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state / home /solvetic / logrotate-state

INGRANDIRE

Questa attività verrà eseguita al 14° minuto di ogni ora, ogni giorno. Fondamentalmente funziona con lo stesso comando logrotate che abbiamo eseguito in precedenza, anche se abbiamo esteso logrotate al percorso completo di / usr / sbin / logrotate. Possiamo salvare il file usando la combinazione di tasti Ctrl + O e uscirne usando Ctrl + X.

Così abbiamo visto come Logrotate sia un'utilità semplice ma efficace quando si tratta di gestire e controllare i record in qualsiasi distribuzione Linux.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave