I log sono molto utili per analizzare e risolvere eventuali problemi relativi al sistema e alle applicazioni in Linux. Per impostazione predefinita, tutti i file di registro si trovano all'interno della directory /var/log nei sistemi operativi basati su Linux. Esistono diversi tipi di file di registro inclusi cron, kernel, utenti, sicurezza e la maggior parte di questi file sono controllati dal servizio Rsyslog.
Rsyslog è un sistema potente e sicuro per l'elaborazione dei log. Il server Rsyslog riceve i registri sulla rete da diversi server fisici o virtualizzati e monitora lo stato di salute di diversi servizi. Con il server Rsyslog, puoi monitorare i registri per altri server, dispositivi di rete e applicazioni remote dalla posizione centralizzata.
In questo tutorial, spiegheremo come configurare il server Rsyslog sul server Ubuntu 18.04.
Prerequisiti
- Due server con Ubuntu 18.04.
- Un indirizzo IP statico 192.168.0.101 è configurato sulla macchina server Rsyslog e 192.168.0.102 è configurato sulla macchina client Rsyslog.
- Una password di root è configurata su entrambi i server.
Installa Rsyslog
Per impostazione predefinita, Rsyslog è installato nel server Ubuntu 18.04. Se non è installato, puoi installarlo eseguendo il seguente comando:
apt-get install rsyslog -y
Dopo aver installato Rsyslog, puoi controllare la versione di Rsyslog con il seguente comando:
rsyslogd -v
Dovresti ottenere il seguente output:
rsyslogd 8.32.0, compiled with: PLATFORM: x86_64-pc-linux-gnu PLATFORM (lsb_release -d): FEATURE_REGEXP: Yes GSSAPI Kerberos 5 support: Yes FEATURE_DEBUG (debug build, slow code): No 32bit Atomic operations supported: Yes 64bit Atomic operations supported: Yes memory allocator: system default Runtime Instrumentation (slow code): No uuid support: Yes systemd support: Yes Number of Bits in RainerScript integers: 64 See http://www.rsyslog.com for more information.
Puoi anche controllare lo stato di Rsyslog con il seguente comando:
systemctl status rsyslog
Dovresti vedere il seguente output:
? rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-10-22 04:28:55 UTC; 1min 31s ago Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/ Main PID: 724 (rsyslogd) Tasks: 4 (limit: 1114) CGroup: /system.slice/rsyslog.service ??724 /usr/sbin/rsyslogd -n Oct 22 04:28:53 ubuntu1804 systemd[1]: Starting System Logging Service... Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.32.0] Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's groupid changed to 106 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's userid changed to 102 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start Oct 22 04:28:55 ubuntu1804 systemd[1]: Started System Logging Service.
Configura server Rsyslog
Rsyslog è ora installato e funzionante. Successivamente, dovrai configurarlo per l'esecuzione in modalità server. Puoi farlo modificando il file /etc/rsyslog.conf.
nano /etc/rsyslog.conf
Innanzitutto, dovrai definire il protocollo UDP o TCP o entrambi.
Per utilizzare contemporaneamente le connessioni UDP e TCP, cerca e decommenta le righe seguenti:
$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514
Quindi, definisci la sottorete, l'IP o il dominio specifici per limitare l'accesso come mostrato di seguito:
$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com $AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com
Successivamente, dovrai creare un modello per indicare al server Rsyslog come archiviare i messaggi syslog in arrivo. Aggiungi le seguenti righe appena prima della sezione DIRETTIVE GLOBALI:
$template remote-incoming-logs, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Salva e chiudi il file quando hai finito. Quindi, controlla la configurazione di Rsyslog per eventuali errori di sintassi con il seguente comando:
rsyslogd -f /etc/rsyslog.conf -N1
Dovresti vedere il seguente output:
rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
Infine, riavvia il servizio Rsyslog con il seguente comando:
systemctl restart rsyslog
Ora verifica che Rsyslog sia in ascolto su TCP/UDP con il seguente comando:
netstat -4altunp | grep 514
Dovresti ottenere il seguente output:
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1332/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 1332/rsyslogd
Configura client Rsyslog
Il server Rsyslog è installato e configurato per ricevere i log da host remoti.
Ora dovrai configurare il client Rsyslog per inviare messaggi syslog al server Rsyslog remoto.
Accedere al computer client e aprire il file di configurazione di Rsyslog come mostrato di seguito:
nano /etc/rsyslog.conf
Aggiungi le seguenti righe alla fine del file:
##Enable sending of logs over UDP add the following line: *.* @192.168.0.101:514 ##Enable sending of logs over TCP add the following line: *.* @@192.168.0.101:514 ##Set disk queue when rsyslog server will be down: $ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Salva e chiudi il file. Quindi, riavvia il server Rsyslog per applicare le modifiche alla configurazione:
systemtcl restart rsyslog
Visualizza registro client
A questo punto, il client Rsyslog è configurato per inviare il proprio registro al server Rsyslog.
Ora, accedi al server Rsyslog e controlla la directory /var/log. Dovresti vedere la voce con il nome host delle tue macchine client inclusi diversi file di registro:
ls /var/log/rsyslog-client/
Uscita:
CRON.log kernel.log rsyslogd-2039.log rsyslogd.log sudo.log wpa_supplicant.log
Conclusione
Nell'articolo precedente, abbiamo imparato come installare e configurare il server Rsyslog sul server Ubuntu 18.04. Abbiamo anche imparato come configurare il client Rsyslog per inviare i log al server Rsyslog. Sentiti libero di chiedermi se hai domande.