La funzionalità syslog è uno degli strumenti principali per un amministratore di sistema. Sebbene la scrittura di file di registro con eventi di interesse sia una caratteristica comune di qualsiasi applicazione, disporre di una funzionalità di registrazione a livello di sistema significa che tutti i registri possono essere gestiti come uno solo sul sistema. Ma syslog non si ferma qui. Con questi strumenti, un amministratore di sistema può centralizzare l'elaborazione dei registri nel datacenter inoltrando gli eventi in entrata dalle applicazioni ai server di registro centrali, dove possono essere elaborati su larga scala.
La registrazione centralizzata è eccessiva su un sistema domestico con pochi computer, ma ha già i suoi vantaggi su una dozzina di macchine. Ad esempio, una dozzina di desktop che inviano tutti i propri file di registro a un server di registro centrale significa che non è necessario archiviarli a lungo termine, i registri occuperanno spazio su disco nel server di registro. L'amministratore può verificare la presenza di problemi in un solo posto (possibilmente tramite report automatici), i log possono essere conservati in modo sicuro tramite backup, archiviati in modo più efficace tramite pesanti compressioni e non andranno persi su un errore del client o errore dell'utente.
In questo tutorial imparerai:
- Come installare il pacchetto rsyslog su RHEL 8 / CentOS 8.
- Come verificare l'avvenuta installazione.
- Come avviare, arrestare e avviare automaticamente il servizio rsyslog.
- Come testare la funzionalità syslog con logger.

Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | RHEL 8 / CentOS 8 |
Software | rsyslog 8 |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Come installare syslog su RHEL 8 / CentOS 8 istruzioni dettagliate
Su RHEL 8 / CentOS 8 rsyslog
pacchetto dovrebbe essere installato e in esecuzione per impostazione predefinita. Potrebbero esserci casi in cui è necessario installarlo comunque, ad esempio pacchetto danneggiato/cancellato, ripristino da un altro servizio syslog, ecc.
- Il
rsyslog
è raggiungibile dai repository di base. È necessario che i repository di gestione delle sottoscrizioni siano impostati e raggiungibili per installare qualsiasi pacchetto. Con questo in atto, l'installazione è solo undnf
comando via:# dnf install rsyslog -y
- Per verificare la corretta installazione, puoi interrogare il
rpm
database per il pacchetto:# rpm -q rsyslog rsyslog-8.37.0-6.el8.x86_64
dnf
dovrebbe anche mostrare lo stato "tempo di installazione" ininfo
output con--verbose
opzione:# dnf info rsyslog --verbose [...] Installed Packages Name : rsyslog Version : 8.37.0 Release : 6.el8 Arch : x86_64 Size : 2.2 M Source : rsyslog-8.37.0-6.el8.src.rpm Repo : @System [...] Install time : Thu Dec 27 12:24:35 2018 Installed by : [...]
E infine,
systemd
dovrebbe conoscere il servizio (non in esecuzione), il che significa che i file del servizio sono a posto:# systemctl status rsyslog.service ● rsyslog.service - System Logging Service Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: inactive (dead) Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/
- Per avviare, interrompere e ottenere lo stato del servizio, utilizziamo
systemctl
. Nell'ultimo passaggio abbiamo visto lo stato del servizio appena installato, in stato inattivo. Possiamo avviarlo con:# systemctl start rsyslog.service
E basta:
# systemctl stop rsyslog.service
Lo stato mostrava che il servizio è abilitato all'installazione, il che significa che si avvierà automaticamente all'avvio del sistema operativo. Possiamo disabilitare questa funzione di avvio automatico con:
# systemctl disable rsyslog.service
E abilitalo di nuovo allo stesso modo:
# systemctl enable rsyslog.service
- Per verificare se il servizio è funzionante (ovvero, accetta eventi syslog dal sistema), possiamo utilizzare
logger
:# echo "test message from user root" | logger
E guarda il messaggio inviato correttamente nel file syslog principale controllando le ultime righe di
/var/log/messages
:# tail /var/log/messages [...] Dec 27 12:39:46 rhel8 rsyslogd[2636]: [origin software="rsyslogd" swVersion="8.37.0-6.el8" x-pid="2636" x-info="http://www.rsyslog.com"] start Dec 27 12:39:46 rhel8 systemd[1]: Started System Logging Service. Dec 27 12:41:56 rhel8 testuser[2668]: test message from user root
Dove
rhel8
è il nome host della macchina di laboratorio,testuser
è l'utente originale che è passato aroot
, il PID della nostra sessione e infine il nostro messaggio daecho
reindirizzato alogger
è STDIN.