Rsyslog è un programma di registrazione open source che utilizza la rete IP per inviare tutti i file di registro a un server di registro centralizzato. È una versione migliorata di Syslog su Linux. Consente agli amministratori di sistema di monitorare tutti i server da un'unica posizione.
Rsyslog funziona in un modello client/server che riceve i registri dai client remoti sulla porta 514 o qualsiasi porta personalizzata configurata sul protocollo TCP/UDP. Supporta anche database ( MySQL, PostgreSQL ) utilizzati per archiviare i log.
In questa guida impareremo come installare e configurare Rsyslog su Debian 10/11
Fase 1:installa il server Rsyslog
Per iniziare, installa il pacchetto Rsyslog da Debian Repository sulla tua macchina server. Corri:
$ sudo apt-get install rsyslog -y
Una volta completata l'installazione, verifica che Rsyslog funzioni correttamente come mostrato:
$ sudo systemctl status rsyslog
Il servizio Rsyslog è ora attivo e funzionante sulla tua macchina server.
Fase 2:Configura il server Rsyslog
Ora che è in esecuzione, configura Rsyslog per l'esecuzione come server sul tuo sistema Debian. Apri il file di configurazione che è /etc/rsyslog.conf .
$ sudo vim /etc/rsyslog.conf
Individua le righe sottostanti e decommentale per la ricezione dei registri UDP e TCP da client remoti.
# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
Successivamente, è necessario specificare il modello che verrà utilizzato dal demone Rsyslog per archiviare i registri in ingresso dai sistemi client. Aggiungi le seguenti righe alla fine del tuo file di configurazione.
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Riavvia rsyslog per rendere effettive le modifiche.
$ sudo systemctl restart rsyslog
Rsyslog è in ascolto sulla porta 514. È possibile modificare la porta predefinita nel file di configurazione. Per verificare che il demone rsyslog sia in ascolto sulla porta 514, eseguire il seguente comando ss.
$ sudo ss -tunlp | grep 514
Fase 3:Configura Firewall per rsyslog
Il demone rsyslog è ora configurato sul server. Se sei dietro il firewall UFW, consenti la porta 514 in modo che il server possa ricevere messaggi di registro dai client. Esegui i comandi:
$ sudo ufw allow 514/tcp $ sudo ufw allow 514/udp
Riavviare il firewall per applicare le nuove regole. Corri:
$ sudo ufw reload
Fase 4:Configura il client Rsyslog
Quindi, configura il client Rsyslog per inviare messaggi di registro al server Rsyslog. Assicurati che RSyslog sia installato correttamente sul tuo computer client.
Innanzitutto, apri il file di configurazione
$ sudo nano /etc/rsyslog.conf
Copia e incolla le righe sottostanti alla fine del file:
#Enable sending system logs over UDP to rsyslog server *.* @rsyslog-server-ip:514 #Enable sending system logs over TCP to rsyslog server *.* @@rsyslog-server-ip:514
La configurazione precedente indica al client di inviare file di registro al server rsyslog utilizzando i protocolli TCP e UDP. Sostituisci rsyslog-server-ip con l'indirizzo IP del tuo server.
Se il server remoto non funziona e devi conservare i log, puoi impostare il buffer della coda del disco aggiungendo le righe seguenti al file di configurazione del client.
##Set disk queue when rsyslog server will be down: $ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Salva e chiudi il file. Ricarica il servizio rsyslog per applicare le modifiche.
$ sudo systemctl restart rsyslog
Fase 5:Visualizza i file di registro dei clienti
I file di registro di Rsyslog sono conservati in /var/log/ cartella sul tuo server. Per visualizzare i log del client, utilizzare il seguente comando ls:
$ ls /var/log/
Per impostazione predefinita, i file di registro del client sono archiviati in una cartella denominata in base al nome host del sistema client. Nel mio caso, il sistema client ha il nome host debian.
Quindi, esegui il comando seguente per visualizzare i registri contenuti nella directory del client.
$ sudo ls -l /var/log/debian/
Puoi anche visualizzare i log in tempo reale sul tuo terminale. Esaminiamo i log dall'utente root. Esegui il comando:
$ sudo tail -f /var/log/debian/sudo.log
Conclusione
Il server rsyslog è ora configurato su Debian 11. Ora puoi configurare diversi client per inviare messaggi di registro al server centralizzato.