Gestione Log · 12 min read · Dec 12, 2025

Come configurare rsyslog per la gestione centralizzata dei log

Questo tutorial spiegherà come configurare rsyslog come server di gestione centralizzata dei log. La gestione centralizzata dei log significa raccogliere tutti i tipi di log da diversi server fisici o virtualizzati su un unico server di log per monitorare la salute e la sicurezza dei servizi del server. Utilizziamo rsyslog in questo tutorial perché offre alte prestazioni, grande sicurezza e un design modulare. È anche in grado di memorizzare i log in numerose soluzioni di database come MySQL, Oracle, Hadoop e altre per una migliore consolidazione.

1. Nota preliminare

Per questo tutorial, sto utilizzando Oracle Linux 6.4 nella versione a 32 bit. Si prega di notare che, anche se la configurazione viene effettuata su Oracle Linux, gli stessi passaggi funzioneranno su CentOS e Red Hat OS Linux. In questo tutorial, utilizzeremo 2 server. Il primo agirà come server rsyslog e l’altro agirà come workstation / server client per il client rsyslog. Alla fine di questo tutorial, vedremo che una volta che un utente accede al server client, il server rsyslog registrerà automaticamente l’attività svolta da lui.

2. Installazione di Rsyslog

Per la fase di installazione, è necessario avere solo i pacchetti rsyslog e le relative dipendenze installate. Prima di tutto, confermiamo la nostra versione del sistema operativo.

[root@RSYS01 ~]# cat /etc/issue  
Oracle Linux Server release 6.4  
Kernel \r on an \m
[root@RSYS01 ~]# arch  
i686
[root@RSYS01 ~]# uname -a  
Linux RSYS01 2.6.32-358.el6.i686 #1 SMP Fri Feb 22 13:37:29 PST 2013 i686 i686 i386 GNU/Linux

Successivamente, configurerò un nuovo repository per installare i pacchetti rsyslog tramite l’utilità yum.


[root@RSYS01 ~]# cd /etc/yum.repos.d/  
[root@RSYS01 yum.repos.d]# vi rsyslog.repo  
[rsyslog-v7-devel]  
name=Adiscon Rsyslog v7-devel per CentOS-$releasever-$basearch  
baseurl=http://rpms.adiscon.com/v7-devel/epel-$releasever/$basearch  
enabled=0  
gpgcheck=0  
protect=1
[rsyslog-v7-stable]  
name=Adiscon Rsyslog v7-stable per CentOS-$releasever-$basearch  
baseurl=http://rpms.adiscon.com/v7-stable/epel-$releasever/$basearch  
enabled=1  
gpgcheck=0  
protect=1

[root@RSYS01 yum.repos.d]# yum list rsyslog  
Loaded plugins: refresh-packagekit, security  
rsyslog-v7-stable | 2.5 kB 00:00  
rsyslog-v7-stable/primary_db | 188 kB 00:01  
Pacchetti disponibili  
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable

Fatto, ora iniziamo a installare la nuova versione di rsyslog. I passaggi sono mostrati di seguito:


[root@RSYS01 yum.repos.d]# yum install rsyslog -y  
Loaded plugins: refresh-packagekit, security  
Setting up Install Process  
Resolving Dependencies  
--> Running transaction check  
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed  
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Running transaction check  
---> Package json-c.i686 0:0.11-3.el6 will be installed  
---> Package libestr.i686 0:0.1.9-1.el6 will be installed  
---> Package libgt.i686 0:0.3.11-1.el6 will be installed  
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed  
--> Finished Dependency Resolution   
Dependencies Resolved   
===============================================================================================================  
Pacchetto Arch Versione Repository Dimensione  
===============================================================================================================  
Installazione:  
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k  
Installazione per dipendenze:  
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k  
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k  
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k  
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k   
Riepilogo della transazione  
===============================================================================================================  
Installa 5 Pacchetto(i)   
Dimensione totale del download: 1.0 M  
Dimensione installata: 3.2 M  
Scaricando pacchetti:  
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00  
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00  
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00  
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00  
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03  
---------------------------------------------------------------------------------------------------------------  
Totale 114 kB/s | 1.0 MB 00:09  
Running rpm_check_debug  
Running Transaction Test  
Transaction Test Succeeded  
Running Transaction  
Installing : libgt-0.3.11-1.el6.i686 1/5  
Installing : liblogging-1.0.4-1.el6.i686 2/5  
Installing : libestr-0.1.9-1.el6.i686 3/5  
Installing : json-c-0.11-3.el6.i686 4/5  
Installing : rsyslog-7.6.7-1.el6.i686 5/5  
Verifying : json-c-0.11-3.el6.i686 1/5  
Verifying : libestr-0.1.9-1.el6.i686 2/5  
Verifying : liblogging-1.0.4-1.el6.i686 3/5  
Verifying : libgt-0.3.11-1.el6.i686 4/5  
Verifying : rsyslog-7.6.7-1.el6.i686 5/5   
   
Installato:  
rsyslog.i686 0:7.6.7-1.el6   
   
Dipendenza installata:  
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6   
   
Completato!
[root@RSYS01 yum.repos.d]# rsyslogd -v  
rsyslogd 7.6.7, compilato con:  
FEATURE_REGEXP: Sì  
Supporto GSSAPI Kerberos 5: Sì  
FEATURE_DEBUG (debug build, codice lento): No  
Operazioni atomiche a 32 bit supportate: Sì  
Operazioni atomiche a 64 bit supportate: Sì  
Strumentazione runtime (codice lento): No  
supporto uuid: Sì  
Numero di bit negli interi RainerScript: 64   
   
Vedi http://www.rsyslog.com per ulteriori informazioni.
[root@RSYS01 ~]# rpm -qa|grep rsyslog  
rsyslog-7.6.7-1.el6.i686

Successivamente, procediamo con la fase di installazione. Per questo tutorial, salteremo il livello di sicurezza per semplificare le cose. Disabiliteremo SELINUX per garantire che non ci siano problemi di sicurezza durante il processo. Tieni presente che non dovresti disabilitare SELinux e il Firewall in un’installazione live. Di seguito sono riportati i passaggi:

Prima di tutto, controlla qual è lo stato attuale della nostra politica SELINUX.

[root@RSYS01 ~]# getenforce  
Enforcing

Per disabilitarlo permanentemente, segui il passaggio qui sotto:

[root@RSYS01 ~]# cd /etc/sysconfig/  
[root@RSYS01 ~]# vi selinux   
   
# Questo file controlla lo stato di SELinux sul sistema.  
# SELINUX= può assumere uno di questi tre valori:  
# enforcing - La politica di sicurezza SELinux è applicata.  
# permissive - SELinux stampa avvisi invece di applicare.  
# disabled - Nessuna politica SELinux è caricata.  
SELINUX=disabled  
# SELINUXTYPE= può assumere uno di questi due valori:  
# targeted - I processi mirati sono protetti,  
# mls - Protezione Multi Level Security.  
SELINUXTYPE=targeted

Dopo di che, assicuriamoci di aver disabilitato il firewall per evitare qualsiasi blocco tra la connessione server e client.

[root@RSYS01 ~]# iptables -nL  
Chain INPUT (policy ACCEPT)  
target prot opt source destination   
   
Chain FORWARD (policy ACCEPT)  
target prot opt source destination   
   
Chain OUTPUT (policy ACCEPT)  
target prot opt source destination
[root@RSYS01 ~]# /etc/init.d/iptables stop  
iptables: Flushing firewall rules: [ OK ]  
iptables: Setting chains to policy ACCEPT: filter [ OK ]  
iptables: Unloading modules: [ OK ]
[root@RSYS01 ~]# /etc/init.d/iptables status  
Table: filter  
Chain INPUT (policy ACCEPT)  
num target prot opt source destination   
   
Chain FORWARD (policy ACCEPT)  
num target prot opt source destination   
   
Chain OUTPUT (policy ACCEPT)  
num target prot opt source destination

Fatto, ora che la fase di installazione è riuscita. Passiamo alla fase di configurazione.

3. Configurazione di Rsyslog

Tutte le dipendenze del pacchetto sono già state installate, concentriamoci sulla configurazione di rsyslog. Andiamo dentro il file di configurazione e apportiamo le modifiche come di seguito:

[root@RSYS01 ~]# vi /etc/rsyslog.conf   
   
module(load="imudp") # deve essere fatto solo una volta  
input(type="imudp" port="514")   
   
$template Auditlog, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"  
$template TmplMsg, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"  
authpriv.* ?Auditlog

Di seguito è riportata la spiegazione delle modifiche di configurazione che abbiamo apportato:

  • module(load=”imudp”) # deve essere fatto solo una volta ==> Forniremo la possibilità di ricevere messaggi rsyslog tra server e client tramite il protocollo UDP
  • input(type=”imudp” port=”514”) ==> Utilizzeremo la porta 514 per i servizi rsyslog
  • $template Auditlog, “/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log” ==> Per ogni client connesso al server rsyslog, il sistema creerà automaticamente la cartella del nome host del client e il nome del file dei servizi correlati
  • $template TmplMsg, “/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log” ==> Per ogni client connesso al server rsyslog, il sistema creerà automaticamente la cartella del nome host del client e il nome del file dei servizi correlati

Una volta completata la configurazione, avviamo il servizio rsyslog.

[root@RSYS01 yum.repos.d]# /etc/init.d/rsyslog restart  
Shutting down system logger: [FAILED]  
Starting system logger: [ OK ]

Usa netstat per assicurarti che i servizi rsyslog siano attivi e funzionanti:

[root@RSYS01 yum.repos.d]# netstat -uanp|grep rsyslog  
udp 0 0 0.0.0.0:514 0.0.0.0:* 2430/rsyslogd  
udp 0 0 :::514 :::* 2430/rsyslogd

Qui puoi vedere che il nostro servizio rsyslog è in esecuzione con le assegnazioni di porta che abbiamo effettuato. Per impostazione predefinita, rsyslog registra anche l’accesso al proprio server poiché tratta il server rsyslog come un client. Per assicurarci che funzioni, possiamo dare un’occhiata nella cartella /var/log. Controlliamo se esiste una cartella con il nome RSYS01 (questo è il nome host del server).

[root@RSYS01 log]# cd /var/log/  
[root@RSYS01 log]# ls -l|grep rsyslog  
drwx------ 3 root root 4096 Oct 24 18:21 rsyslog_client
[root@RSYS01 log]# cd rsyslog_client  
[root@RSYS01 rsyslog_client]# ls  
RSYS01  
[root@RSYS01 rsyslog_client]# cd RSYS01/  
[root@RSYS01 RSYS01]# ls  
rsyslogd.log

Bene, sembra che tutto funzioni perfettamente! Ora procediamo con la fase di test per concludere che tutte le configurazioni siano state effettuate come previsto.

4. Fase di test

Poiché il server che esegue il servizio rsyslog funge anche da client, possiamo vedere sul server stesso se il monitoraggio degli accessi locali è monitorato. Per assicurarci che sia vero, accediamo al server rsyslog con un’altra sessione utilizzando il servizio SSH. Per questo passaggio, presumeremo che il server stesso sia già configurato per la connessione senza password. Di seguito sono riportati i passaggi:

[root@RSYS01 RSYS01]# ssh root@RSYS01  
Last login: Sat Oct 22 15:45:48 2016 from 172.20.181.70
[root@RSYS01 ~]# who  
root pts/0 2016-10-22 00:21 (172.20.181.11)  
root pts/1 2016-10-24 18:22 (127.0.0.1)
[root@RSYS01 ~]# exit  
logout  
Connection to RSYS01 closed.

Fatto, semplice come quello. Ci siamo appena collegati al server rsyslog stesso e una volta creata la nuova sessione, ci siamo semplicemente disconnessi per assicurarci che il servizio rsyslog abbia registrato la sessione. Ora, controlliamo se la sessione è stata registrata o meno. Di seguito sono riportati i passaggi:

[root@RSYS01 ~]# cd var/log/rsyslog_client/RSYS01  
[root@RSYS01 RSYS01]# ls  
rsyslogd.log sshd.log  
[root@RSYS01 RSYS01]# tail -f sshd.log  
Oct 24 18:22:46 RSYS01 sshd[2536]: Accepted password for root from 192.168.43.101 port 52862 ssh2  
Oct 24 18:22:46 RSYS01 sshd[2536]: pam_unix(sshd:session): session opened for user root by (uid=0)  
Oct 24 18:22:50 RSYS01 sshd[2536]: Received disconnect from 192.168.43.101: 11: disconnected by user  
Oct 24 18:22:50 RSYS01 sshd[2536]: pam_unix(sshd:session): session closed for user root  
^C

Eccellente, il servizio rsyslog ha creato automaticamente un file sshd.log quando la sessione è iniziata sul server. All’interno del file di log, possiamo vedere che c’è un elenco di dettagli che indicano l’ora, la porta e l’utente creato sotto la sessione.

Ora che tutto funziona come previsto. Configuriamo una workstation per il client rsyslog da essere registrata dal nostro server rsyslog. Per il client rsyslog, è sufficiente installare i pacchetti rsyslog e apportare una semplice modifica nel file di configurazione per collegarsi al server rsyslog. Di seguito sono riportati i passaggi:

[root@CLIENT01 ~]# cd /etc/yum.repos.d/  
[root@CLIENT01 yum.repos.d]# yum list rsyslog  
Loaded plugins: refresh-packagekit, security  
rsyslog-v7-stable | 2.5 kB 00:00  
rsyslog-v7-stable/primary_db | 188 kB 00:01  
Pacchetti disponibili  
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable

[root@RSYS01 yum.repos.d]# yum install rsyslog -y  
Loaded plugins: refresh-packagekit, security  
Setting up Install Process  
Resolving Dependencies  
--> Running transaction check  
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed  
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Running transaction check  
---> Package json-c.i686 0:0.11-3.el6 will be installed  
---> Package libestr.i686 0:0.1.9-1.el6 will be installed  
---> Package libgt.i686 0:0.3.11-1.el6 will be installed  
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed  
--> Finished Dependency Resolution  
   
Dependencies Resolved  
   
===============================================================================================================  
Pacchetto Arch Versione Repository Dimensione  
===============================================================================================================  
Installazione:  
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k  
Installazione per dipendenze:  
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k  
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k  
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k  
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k  
   
Riepilogo della transazione  
===============================================================================================================  
Installa 5 Pacchetto(i)  
   
Dimensione totale del download: 1.0 M  
Dimensione installata: 3.2 M  
Scaricando pacchetti:  
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00  
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00  
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00  
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00  
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03  
---------------------------------------------------------------------------------------------------------------  
Totale 114 kB/s | 1.0 MB 00:09  
Running rpm_check_debug  
Running Transaction Test  
Transaction Test Succeeded  
Running Transaction  
Installing : libgt-0.3.11-1.el6.i686 1/5  
Installing : liblogging-1.0.4-1.el6.i686 2/5  
Installing : libestr-0.1.9-1.el6.i686 3/5  
Installing : json-c-0.11-3.el6.i686 4/5  
Installing : rsyslog-7.6.7-1.el6.i686 5/5  
Verifying : json-c-0.11-3.el6.i686 1/5  
Verifying : libestr-0.1.9-1.el6.i686 2/5  
Verifying : liblogging-1.0.4-1.el6.i686 3/5  
Verifying : libgt-0.3.11-1.el6.i686 4/5  
Verifying : rsyslog-7.6.7-1.el6.i686 5/5  
   
Installato:  
rsyslog.i686 0:7.6.7-1.el6  
   
Dipendenza installata:  
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6  
   
Completato!

Fatto, ora abbiamo installato il pacchetto rsyslog sulla nostra workstation client. Ora apportiamo una modifica all’interno del file di configurazione di rsyslog. Per la configurazione del client, è sufficiente modificare la configurazione come di seguito:

[root@CLIENT01 ~]# vi /etc/rsyslog.conf  
   
*.* @192.168.43.101:514

Questo è tutto, nota che abbiamo incluso l’IP 192.168.43.101 con la porta 514 nel file di configurazione. Quell’IP è l’IP per il server rsyslog. Ora che tutto è fatto, riavviamo il servizio rsyslog sulla workstation client per caricare le modifiche. Di seguito sono riportati i passaggi:

[root@CLIENT01 ~]# /etc/init.d/rsyslog restart  
Shutting down system logger: [FAILED]  
Starting system logger: [ OK ]

Ora torniamo al nostro server rsyslog e vediamo se è stata creata una cartella per il nome host del client rsyslog nella directory di log di rsyslog. Di seguito sono riportati i passaggi:

[root@RSYS01 ~]# cd var/log/rsyslog_client/  
[root@RSYS01 rsyslog_client]# ls  
RSYS01 CLIENT01

Eccellente, nota che è stata creata automaticamente una cartella con il nome host del client rsyslog. Questo conferma che la nostra configurazione è corretta e il client rsyslog è in grado di stabilire una connessione UDP al server rsyslog.

Per la prossima procedura di test, accediamo al client rsyslog come un altro utente e vediamo se il server rsyslog riesce a catturare l’attività o meno. Di seguito sono riportati i passaggi:

::CLIENT01::  
login as: shahril  
[email protected]'s password:  
Last login: Sun Oct 23 00:21:40 2016 from 172.20.181.11
[shahril@CLIENT01 ~]$ who  
shahril pts/0 2016-10-24 17:01 (192.168.43.80)
[shahril@CLIENT01 ~]$ exit

Ora, controlliamo la directory di log all’interno del server rsyslog per vedere se siamo riusciti a registrare l’attività creata dal client rsyslog o meno.

[root@RSYS01 ~]# cd var/log/rsyslog_client/  
[root@RSYS01 rsyslog_client]# cd CLIENT01/  
[root@RSYS01 CLIENT01]# ls  
rsyslogd.log sshd.log  
[root@RSYS01 CLIENT01]# tail -10 sshd.log  
Oct 24 17:01:47 CLIENT01 sshd[2102]: Accepted password for shahril from 192.168.43.80 port 17002 ssh2  
Oct 24 17:01:47 CLIENT01 sshd[2102]: pam_unix(sshd:session): session opened for user shahril by (uid=0)

Ottimo, il risultato mostra che il processo funziona come previsto. Ora per il test finale, accediamo di nuovo al client rsyslog e installiamo un pacchetto per testare se il servizio rsyslog riesce a registrare altre attività oltre alla creazione della sessione. Di seguito sono riportati i passaggi:

::CLIENT01::  
login as: root  
[email protected]'s password:  
Last login: Sat Oct 22 10:21:40 2016 from 172.20.181.11
[root@CLIENT01 ~]# yum install firefox -y  
Loaded plugins: refresh-packagekit, security  
Repository 'OEL64' is missing name in configuration, using id  
Setting up Install Process  
Resolving Dependencies  
--> Running transaction check  
---> Package firefox.i686 0:10.0.12-1.0.1.el6_3 will be installed  
--> Finished Dependency Resolution  
   
Dependencies Resolved  
   
================================================================================  
Pacchetto Arch Versione Repository Dimensione  
================================================================================  
Installazione:  
firefox i686 10.0.12-1.0.1.el6_3 OEL64 20 M  
   
Riepilogo della transazione  
================================================================================  
Installa 1 Pacchetto(i)  
   
Dimensione totale del download: 20 M  
Dimensione installata: 23 M  
Scaricando pacchetti:  
Running rpm_check_debug  
Running Transaction Test  
Transaction Test Succeeded  
Running Transaction  
Installing : firefox-10.0.12-1.0.1.el6_3.i686 1/1  
Verifying : firefox-10.0.12-1.0.1.el6_3.i686 1/1  
   
Installato:  
firefox.i686 0:10.0.12-1.0.1.el6_3  
   
Completato!

Quanto sopra mostra che abbiamo installato con successo un installer del browser firefox all’interno della nostra workstation client rsyslog. Ora torniamo al nostro server rsyslog e controlliamo se rsyslog è stato in grado di registrare il processo di installazione di un pacchetto di terze parti nella workstation. Di seguito sono riportati i passaggi:

[root@RSYS01 ~]# cd var/log/rsyslog_client/  
[root@RSYS01 CLIENT01]# ls  
rsyslogd.log sshd.log yum.log  
[root@RSYS01 CLIENT01]# tail -20 yum.log  
Oct 25 17:13:17 CLIENT01 yum[2319]: Installed: firefox-10.0.12-1.0.1.el6_3.i686

Eccellente, il servizio rsyslog è riuscito ad auditare le informazioni dell’attività di installazione nella workstation client.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.