Syslog è lo standard generale per la registrazione dei messaggi di sistema e di programma nell'ambiente Linux. Questo servizio costituisce il demone del log di sistema, in cui qualsiasi programma può effettuare il suo logging (debug, sicurezza, normale funzionamento) attraverso in aggiunta i messaggi del kernel Linux.
In linea di principio, i log gestiti da syslog sono disponibili nella directory /var/log/ su sistema Linux:
# ls /var/log boot.log cloud-init-output.log firewalld maillog rhsm tallylog anaconda btmp cron gdm maillog-20151219 samba tuned audit btmp-20151219 cron-20151219 grubby messages secure wpa_supplicant.log auth.log choose_repo.log dmesg grubby_prune_debug messages-20151219 secure-20151219 wtmp yum.log chrony dmesg.old lastlog pm-powersave.log spooler xrdp.log
dove alcuni dei log vengono scaricati in una sottodirectory come cups, samba, httpd. Tra i log in /var/log il /var/log/messages è il più comune in quanto i registri di sistema del kernel/core sono conservati lì. I moduli del kernel generalmente scaricano anche lì. Quindi, per la diagnosi/monitoraggio dei problemi, /var/log/messages è il file di registro principale da esaminare.
I log vengono ruotati ogni settimana (rinominando il log esistente in filename.number order):
# ls -l /var/log/messages* -rw------- 1 root root 1973 Jun 10 15:07 /var/log/messages -rw------- 1 root root 10866 Jun 6 04:02 /var/log/messages.1 -rw------- 1 root root 19931 May 30 04:02 /var/log/messages.2 -rw------- 1 root root 238772 May 23 04:02 /var/log/messages.3 -rw------- 1 root root 171450 May 14 18:29 /var/log/messages.4
il file di registro a rotazione settimanale viene eliminato dopo 4 settimane (i registri totali coprono un periodo di 5 settimane). Questo meccanismo di rotazione è fornito da crond e logrotate.
C'è anche rsyslogd fornito dal pacchetto rsyslog che è una versione più affidabile ed estesa di syslogd. Per maggiori informazioni installa il pacchetto rsyslog e controlla la pagina man di rsyslogd.
Controllo del servizio
Per avviare il servizio syslog usa uno dei seguenti comandi:
# service syslog start # /etc/init.d/syslog start
Per interrompere il servizio syslog, utilizza uno dei seguenti comandi:
# service syslog stop # /etc/init.d/syslog stop
Per visualizzare il runlevel e la disponibilità del servizio, esegui:
# chkconfig --list syslog syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Se il servizio è disabilitato puoi abilitarlo nei seguenti modi:
# chkconfig --list syslog syslog 0:off 1:off 2:off 3:off 4:off 5:off 6:off # chkconfig syslog on # chkconfig --list syslog syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Configurazione
Il file di configurazione per il servizio syslogd è /etc/sysconfig/syslog . Il file predefinito è il seguente:
# Options to syslogd # -m 0 disables 'MARK' messages. # -r enables logging from remote machines # -x disables DNS lookups on messages recieved with -r # See syslogd(8) for more details SYSLOGD_OPTIONS="-m 0" # Options to klogd # -2 prints all kernel oops messages twice; once for klogd to decode, and # once for processing with 'ksymoops' # -x disables all klogd processing of oops messages entirely # See klogd(8) for more details KLOGD_OPTIONS="-x" # SYSLOG_UMASK=077 # set this to a umask value to use for all log files as in umask(1). # By default, all permissions are removed for "group" and "other".
Lì vedi due diversi gruppi di opzioni per:
klogd – Kernel Log Daemon :questo è il demone che cattura i messaggi dal kernel Linux e li registra nei file.
syslogd – System Log Daemon :Intercettazione e registrazione di altri messaggi.
Il file di configurazione predefinito elenca alcune opzioni in cui possiamo descrivere ulteriormente:
opzioni syslogd:
- Intervallo -m :Metti una riga con "MARK" ogni intervallo minuti. “-m 0” disabilita completamente “MARK”
- -r :Utilizzato per abilitare la struttura a ricevere messaggi dalla rete utilizzando una presa di dominio Internet con il servizio syslog.
- -x :Quando i log arrivano dalla rete (tramite l'opzione -r) gli indirizzi di origine verranno forniti nei log creati. Gli indirizzi devono essere cercati in DNS. Se si verificano registrazioni remote troppo frequenti (e in genere questo è il caso in cui si verifica un problema nel sito remoto), non è preferibile dedicare tempo alle ricerche DNS. Questa opzione può essere utilizzata per disabilitare le ricerche DNS.
- -S :registrazione dettagliata
- -d :modalità di debug per syslogd
opzioni di klogd:
- -2 :Stampa le righe una volta con testo grezzo e ancora una volta con indirizzi convertiti in simboli. Ciò sarebbe necessario affinché ksymoops esegua l'elaborazione sui dati originali.
- -x :Non eseguire la traduzione EIP (per OOPS) per non leggere il file System.map (aumento della velocità di dumping)
- -d :modalità di debug per klogd
- -c n :livello di registro predefinito dei messaggi della console
umask :SYSLOG_UMASK controlla i privilegi/autorizzazioni di accesso predefiniti per i file di registro generati.