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.
Qui a LinuxAPT, come parte dei nostri servizi di gestione del server, aiutiamo regolarmente i nostri clienti a eseguire query di configurazione Rsyslog correlate sul sistema Linux.
In questo contesto, esamineremo come installare e configurare Rsyslog su Debian 10 / 11.
Passaggi per installare e configurare il server Rsyslog su un sistema Debian Linux
1. Installa il server Rsyslog
Per iniziare, installa il pacchetto Rsyslog da Debian Repository sulla tua macchina server. Esegui il comando seguente:
$ sudo apt-get install rsyslog -y
Una volta completata l'installazione, verifica che Rsyslog funzioni correttamente come mostrato di seguito:
$ sudo systemctl status rsyslog
Se tutto è a posto, il servizio Rsyslog è ora attivo e in esecuzione sulla tua macchina server.
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 seguenti 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
Quindi, 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
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. Esegui il comando:
$ sudo ufw reload
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 si interrompe ed è necessario conservare i registri, è possibile 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 le modifiche da applicare:
$ sudo systemctl restart rsyslog
5. Visualizza i file di registro dei clienti
I file di registro di Rsyslog sono conservati nella cartella /var/log/ sul 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 seguente:
$ sudo tail -f /var/log/debian/sudo.log