BSD-FAQ-it
Indietro | Capitolo 6. Programmare le attività | Avanti

# 6.2. La gestione dei log: newsyslog

Per un amministratore di sistema è di fondamentale importanza capire cosa accade sui sistemi che amministra. Una corretta gestione dei file di log può essere fondamentale perchè consente di disporre, in maniera strutturata ed intelligente, di tutte quelle informazioni che possono aiutare un'amministratore a prevenire eventuali problemi nonchè a mantenere in sicurezza il sistema. Newsyslog è una utility di sistema che consente di manutenere i log di sistema aiutando, se necessario, l'amministratore a definire un sistema di archiviazione periodica automatica.

I file di log dovrebbero occupare uno spazio adeguato su disco nonchè essere mantenuti in un formato sempre leggibile, questo modo di operare consente di mantenere i file di log sempre in ordine e pronti per essere interpretati dalle svariate utility disegnate per generare report intellegibili. Newsyslog consente di impostare alcune variabili che aiuteranno l'amministratore di sistema a ruotare ed archiviare in maniera strutturata e definitiva i file di log prodotti dalle varie applicazioni. Le impostazioni possono essere definite utilizzando il file /etc/newsyslog

    # configuration file for newsyslog
    # logfilename          [owner:group]          mode count size when [ZJB] [/pid_file] [sig_num]
    /var/log/maillog                              640  7       *    $W0D0 Z
    /var/log/messages                             644  5       100  *     Z
    /var/log/www.sitoweb.net-access_log           644  2       *    $M1D4   Z    /var/run/httpd.pid
    /var/log/www.sitoweb.net-error_log            644  2       *    $M1D4   Z    /var/run/httpd.pid

Le impostazioni di default del file di configurazione /etc/newsyslog.conf sono decisamente sufficenti per ruotare e gestire quasi tutti i file di log. Nell'esempio sopracitato vediamo come archiviare i file di log del mailserver (maillog), il file di log del kernel (messages) ed i file di log prodotti dal webserver Apache.

- logfile_name è il nome del file di log che dovrà essere archiviato

- owner:group è una impostazione opzionale che definisce l'utente ed il gruppo proprietario del file che dovrà essere archiviato

- mode specifica il file mode del log

- count specifica il numero dei file che dovranno essere archiviati

- size è una impostazione che definisce la grandezza massima che un file di log può raggiungere (espressa in kilobytes) prima di essere ruotato, quando questo campo viene completato con un asterisco ``*'' non verranno considerate un limite alla ruotazione le dimensioni del file di log

- when è una impostazione che definisce un'intervallo temporale, quando il campo viene completato con un'asterisco ``*'' la rotazione dei log rotation dipenderà unicamente dal valore impostato nel campo size, di seguito riportiamo gli esempi che ci consentiranno di gestire al meglio il campo when

    $D0 ruota il log ogni notte a mezzanotte (lo stesso per @T00)
    $D23 ruota il log ogni giorno alle ore 23:00 (lo stesso per @T23)
    $W0D23 ruota il log ogni Domenica alle ore 23:00
    $W5D16 ruota il log ogni Venerdì alle ore 16:00
    $M1D0 ruota il log il primo giorno di ogni mese a mezzanotte (lo stesso per @01T00)
    $M5D6 ruota il log ogni giorno 5 del mese alle ore 6:00 (lo stesso per @05T06)

- flags è una impostazione che specifica il modo di processare i files di log

- path_to_pid_file è una impostazione opzionale che consente di indicare il file che contiene il process id del demone attivo che stà generando il file di log. Se questo campo è presente viene inviato un signal_number al process id.

L'esempio che abbiamo riportato nel nostro file /etc/newsyslog.conf, consente di riavviare il server Apache nel momento in cui newsyslog effettuara la ruotazione mensile del file di log

Indietro | Partenza | Avanti
Programmare le attività | Risali | Licenza delle Note