Unix / Linux - Registrazione del sistema
In questo capitolo, discuteremo in dettaglio sulla registrazione del sistema in Unix.
I sistemi Unix hanno un sistema di registrazione molto flessibile e potente, che ti consente di registrare quasi tutto ciò che puoi immaginare e quindi manipolare i log per recuperare le informazioni necessarie.
Molte versioni di Unix forniscono una funzione di registrazione generica chiamata syslog. I singoli programmi che richiedono la registrazione delle informazioni, inviano le informazioni a syslog.
Unix syslog è una funzione di registrazione del sistema uniforme e configurabile dall'host. Il sistema utilizza un processo di registrazione del sistema centralizzato che esegue il programma/etc/syslogd o /etc/syslog.
Il funzionamento del logger di sistema è abbastanza semplice. I programmi inviano le loro voci di registro a syslogd , che consulta il file di configurazione/etc/syslogd.conf o /etc/syslog e, quando viene trovata una corrispondenza, scrive il messaggio di registro nel file di registro desiderato.
Ci sono quattro termini di base di syslog che dovresti capire:
Sr.No. | Termine e descrizione |
---|---|
1 | Facility L'identificatore utilizzato per descrivere l'applicazione o il processo che ha inviato il messaggio di registro. Ad esempio, posta, kernel e ftp. |
2 | Priority Un indicatore dell'importanza del messaggio. I livelli sono definiti all'interno di syslog come linee guida, dalle informazioni di debug agli eventi critici. |
3 | Selector Una combinazione di uno o più servizi e livelli. Quando un evento in arrivo corrisponde a un selettore, viene eseguita un'azione. |
4 | Action Cosa succede a un messaggio in arrivo che corrisponde a un selettore: le azioni possono scrivere il messaggio in un file di registro, eseguire l'eco del messaggio su una console o su un altro dispositivo, scrivere il messaggio a un utente connesso o inviare il messaggio a un altro server syslog. |
Strutture Syslog
Ora capiremo le funzionalità di syslog. Ecco i servizi disponibili per il selezionatore. Non tutte le funzionalità sono presenti su tutte le versioni di Unix.
Servizio, struttura | Descrizione |
---|---|
1 | auth Attività relativa alla richiesta di nome e password (getty, su, login) |
2 | authpriv Uguale ad auth ma registrato in un file che può essere letto solo da utenti selezionati |
3 | console Utilizzato per catturare i messaggi generalmente diretti alla console di sistema |
4 | cron Messaggi dallo scheduler di sistema cron |
5 | daemon Demone di sistema catch-all |
6 | ftp Messaggi relativi al demone ftp |
7 | kern Messaggi del kernel |
8 | local0.local7 Strutture locali definite per sito |
9 | lpr Messaggi dal sistema di stampa in linea |
10 | Messaggi relativi al sistema di posta |
11 | mark Pseudo-evento utilizzato per generare timestamp nei file di registro |
12 | news Messaggi relativi al protocollo di notizie di rete (nntp) |
13 | ntp Messaggi relativi al protocollo orario di rete |
14 | user Processi utente regolari |
15 | uucp Sottosistema UUCP |
Priorità di Syslog
Le priorità di syslog sono riassunte nella tabella seguente:
Sr.No. | Priorità e descrizione |
---|---|
1 | emerg Condizione di emergenza, come un arresto anomalo del sistema imminente, di solito trasmessa a tutti gli utenti |
2 | alert Condizione che deve essere corretta immediatamente, ad esempio un database di sistema danneggiato |
3 | crit Condizione critica, come un errore hardware |
4 | err Errore ordinario |
5 | Warning avvertimento |
6 | notice Condizione che non è un errore, ma possibilmente dovrebbe essere gestita in modo speciale |
7 | info Messaggio informativo |
8 | debug Messaggi utilizzati durante il debug dei programmi |
9 | none Livello pseudo utilizzato per specificare di non registrare i messaggi |
La combinazione di strutture e livelli consente di distinguere ciò che viene registrato e dove vanno a finire tali informazioni.
Poiché ogni programma invia diligentemente i propri messaggi al logger di sistema, quest'ultimo prende decisioni su cosa tenere traccia e cosa scartare in base ai livelli definiti nel selettore.
Quando si specifica un livello, il sistema terrà traccia di tutto a quel livello e superiore.
Il file /etc/syslog.conf
Il /etc/syslog.confcontrolla i file in cui vengono registrati i messaggi. Un tipicosyslog.conf il file potrebbe essere simile a questo -
*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice /var/log/messages
lpr.info /var/log/lpr.log
mail.* /var/log/mail.log
ftp.* /var/log/ftp.log
auth.* @prep.ai.mit.edu
auth.* root,amrood
netinfo.err /var/log/netinfo.log
install.* /var/log/install.log
*.emerg *
*.alert |program_name
mark.* /dev/console
Ogni riga del file contiene due parti:
UN message selectorche specifica il tipo di messaggi da registrare. Ad esempio, tutti i messaggi di errore o tutti i messaggi di debug dal kernel.
Un action fieldche dice cosa dovrebbe essere fatto con il messaggio. Ad esempio, inseriscilo in un file o invia il messaggio al terminale di un utente.
Di seguito sono riportati i punti importanti per la configurazione di cui sopra:
I selettori di messaggi hanno due parti: a facility e a priority. Ad esempio, kern.debug seleziona tutti i messaggi di debug (la priorità) generati dal kernel (la struttura).
Il selettore di messaggi kern.debug seleziona tutte le priorità che sono maggiori di debug.
Un asterisco al posto della struttura o della priorità indica "tutto". Per esempio,*.debug significa tutti i messaggi di debug, mentre kern.* indica tutti i messaggi generati dal kernel.
È inoltre possibile utilizzare le virgole per specificare più strutture. È possibile raggruppare due o più selettori utilizzando un punto e virgola.
Azioni di registrazione
Il campo azione specifica una delle cinque azioni:
Registra il messaggio in un file o un dispositivo. Per esempio,/var/log/lpr.log o /dev/console.
Invia un messaggio a un utente. È possibile specificare più nomi utente separandoli con virgole; ad esempio, root, amrood.
Invia un messaggio a tutti gli utenti. In questo caso, il campo azione è costituito da un asterisco; per esempio, *.
Invia il messaggio a un programma. In questo caso, il programma viene specificato dopo il simbolo pipe Unix (|).
Invia il messaggio al syslog su un altro host. In questo caso, il campo azione è costituito da un nome host, preceduto da un segno di chiocciola; ad esempio, @ tutorialspoint.com.
Il comando logger
Unix fornisce l'estensione loggercomando, che è un comando estremamente utile per gestire la registrazione del sistema. Illogger Il comando invia messaggi di registrazione al demone syslogd e di conseguenza provoca la registrazione di sistema.
Ciò significa che possiamo controllare in qualsiasi momento dalla riga di comando il file syslogddaemon e la sua configurazione. Il comando logger fornisce un metodo per aggiungere voci di una riga al file di registro di sistema dalla riga di comando.
Il formato del comando è:
logger [-i] [-f file] [-p priority] [-t tag] [message]...
Ecco il dettaglio dei parametri -
Sr.No. | Opzione e descrizione |
---|---|
1 | -f filename Utilizza il contenuto del file nomefile come messaggio da registrare. |
2 | -i Registra l'ID del processo del logger con ciascuna riga. |
3 | -p priority Immette il messaggio con la priorità specificata (voce del selettore specificata); la priorità del messaggio può essere specificata numericamente o come coppia facility.priority. La priorità predefinita è user.notice. |
4 | -t tag Contrassegna ogni riga aggiunta al registro con il tag specificato. |
5 | message Gli argomenti stringa i cui contenuti sono concatenati insieme nell'ordine specificato, separati da uno spazio. |
È possibile utilizzare la Guida della pagina di manuale per controllare la sintassi completa di questo comando.
Rotazione del registro
I file di registro hanno la propensione a crescere molto velocemente e consumano grandi quantità di spazio su disco. Per abilitare le rotazioni dei log, la maggior parte delle distribuzioni utilizza strumenti comenewsyslog o logrotate.
Questi strumenti dovrebbero essere richiamati in un intervallo di tempo frequente utilizzando il cron daemon. Controlla le pagine man per newsyslog o logrotate per maggiori dettagli.
Posizioni dei registri importanti
Tutte le applicazioni di sistema creano i propri file di registro in formato /var/loge le sue sottodirectory. Di seguito sono riportate alcune applicazioni importanti e le directory di registro corrispondenti:
Applicazione | Directory |
---|---|
httpd | / var / log / httpd |
samba | / var / log / samba |
cron | / var / log / |
posta | / var / log / |
mysql | / var / log / |