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/LinuxSuccessivamente, 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-stableFatto, 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.i686Successivamente, 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
EnforcingPer 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=targetedDopo 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 destinationFatto, 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.* ?AuditlogDi 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/rsyslogdQui 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.logBene, 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
^CEccellente, 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:514Questo è 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 CLIENT01Eccellente, 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 ~]$ exitOra, 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.i686Eccellente, il servizio rsyslog è riuscito ad auditare le informazioni dell’attività di installazione nella workstation client.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.