GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare il server di registrazione centrale utilizzando Rsyslog su Ubuntu 20.04

Rsyslog è un'utilità open source per l'elaborazione dei registri. Consente la registrazione di dati da diversi tipi di sistemi in un repository centrale. Rsyslog è un protocollo Syslog con più estensioni, funzionalità e vantaggi.

Cosa rende rsyslog così potente? Rsyslog può consegnare oltre un milione di messaggi al secondo a destinazioni locali quando viene applicata un'elaborazione limitata.

In questo tutorial impariamo come installare e configurare rsyslog su Ubuntu 20.04 .

Caratteristiche di Rsyslog

Rsyslog è arrivato nel 2004 ed estende il protocollo syslog con nuove funzionalità:

  • Supporto del protocollo RELP
  • Supporto per operazioni bufferizzate
  • Ascolto di connessioni TCP/UDP (con restrizioni porta, IP)
  • Supporto per il caricamento di molti moduli (ad esempio modulo per supportare il protocollo RELP)
  • Supporto per il messaggio di eliminazione che contiene regole speciali configurate

In Rsyslog, i file di configurazione rimangono gli stessi di Syslog. Ciò significa semplicemente che puoi copiare un file syslog.conf direttamente in rsyslog.conf e funzionerà.

Cosa sono log e syslog?

Prima di passare al processo di configurazione stesso, vediamo prima a cosa servono i log? Le informazioni di registro possono davvero aiutarti a vedere cosa è successo esattamente sul tuo sistema o cosa sta succedendo esattamente sotto il cofano.

Lascia che ti faccia un esempio:se all'improvviso il tuo pc si è sbriciolato o forse si è bloccato o addirittura tempi di inattività del tuo sistema e molte altre informazioni utili che non puoi vedere nel solito modo quando vengono visualizzati i messaggi di errore.

Se sai come utilizzare correttamente i registri, possono darti molte funzionalità e vantaggi per le informazioni diagnostiche sul sistema stesso.

Per impostazione predefinita, Linux utilizza il demone syslog per registrare i registri su come è in esecuzione il sistema e quindi inserire questi registri in un repository centrale in:/var/log dove possiamo esaminarli e investigarli.
In termini semplici, tutto, dagli eventi del kernel alle azioni dell'utente, viene registrato da Linux, consentendoti di vedere quasi tutte le azioni eseguite sul tuo PC o server.

Nel file system Linux esiste una directory speciale per la memorizzazione dei log chiamata /var/log . Questa directory contiene tutti i registri del sistema operativo stesso come:servizi o varie applicazioni in esecuzione sul sistema.

Vediamo come appaiono le directory e le strutture dei log sul nuovo Linux Ubuntu 20.04.

Directory in cui sono archiviati diversi tipi di registri:

/var/log/syslog - Memorizza tutti i messaggi di avvio, i messaggi di avvio delle applicazioni, ecc. Memorizza praticamente tutti i registri di sistema globali.
/var/log/cron - I lavori Cron sono fondamentalmente una sorta di attività pianificata e automatizzata creata nel sistema, che viene eseguita periodicamente e ripetutamente. Puoi vedere cosa memorizzerebbe questa directory dei registri.
/var/log/kern.log - memorizza i log del kernel. Non importa quali registri siano. Registri eventi, errori o registri di avviso.
/var/log/auth.log - Registri di autenticazione
/var/log.boot.log - Registri di avvio del sistema
/var/log/mysql.d - Registri MySQL
/var/log/httpd - Directory dei registri di Apache
/var/log/maillog - Registri del server di posta

Configura il server di registro centralizzato Rsyslog su Ubuntu 20.04

Dopo una breve panoramica, cosa sono i log, Syslog e dove ha posto rsyslog, passiamo al processo di configurazione stesso.

Prerequisiti

  • Due server che eseguono Ubuntu 20.04
  • Un indirizzo IP statico:l'esempio 192.168.0.101 è necessario per essere configurato sulla macchina server Rsyslog e 192.168.0.102 è configurato sulla macchina client Rsyslog

Il sistema Ubuntu 20.04 ha rsyslog installato per impostazione predefinita fornito con i pacchetti di sistema standard.

Puoi controllare se è in esecuzione:

$ sudo systemctl status rsyslog
● rsyslog.service - System Logging Service
     Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-22 21:16:34 UTC; 12h ago
TriggeredBy: ● syslog.socket
       Docs: man:rsyslogd(8)
             https://www.rsyslog.com/doc/
   Main PID: 566 (rsyslogd)
      Tasks: 4 (limit: 2281)
     Memory: 2.7M
     CGroup: /system.slice/rsyslog.service
             └─566 /usr/sbin/rsyslogd -n -iNONE

Eseguire il comando seguente per verificare la versione di Rsyslog attualmente installata:

$ rsyslogd -v

Uscita:

rsyslogd  8.2001.0 (aka 2020.01) 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
         Config file:                            /etc/rsyslog.conf
         PID file:                               /run/rsyslogd.pid
         Number of Bits in RainerScript integers: 64

Nel caso non sia installato o in esecuzione, installa rsyslog utilizzando i seguenti comandi:

$ sudo apt-get update
$ sudo apt-get install rsyslog

Ora è il momento di andare su rsyslog.conf file, per rimuovere il commento e modificare alcune righe per eseguire il servizio rsyslog in modalità server:

$ sudo nano /etc/rsyslog.conf

Decommenta queste quattro righe che abilitano il port binding udp e tcp:

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

Il passaggio successivo che dovremo aggiungere è creare un nuovo modello. Dobbiamo creare un nuovo modello per la ricezione di messaggi remoti. Un modello fornirà istruzioni al server rsyslog su come archiviare i messaggi syslog in arrivo.

NOTA: Aggiungi il modello subito prima delle DIRETTIVE GLOBALI sezione:

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?remote-incoming-logs
& ~

La riga sopra indica che i log ricevuti verranno elaborati e archiviati nella directory /var/log/. Puoi definire nel file /etc/rsyslog.conf dove rsyslog logs.

Il nome del file contiene le variabili %HOSTNAME% e %PROGRAMNAME% che rappresentano la macchina client e il nome del programma client che ha prodotto il messaggio di registro.

Salva questo e riavvia il servizio rsyslog:

$ sudo systemctl restart rsyslog

Conferma che il servizio rsyslog è in ascolto sulle porte configurate:

$ ss -tunelp | grep 514
udp    UNCONN  0       0                    0.0.0.0:514           0.0.0.0:*      ino:33591 sk:1 <->                                                             
udp    UNCONN  0       0                       [::]:514              [::]:*      ino:33592 sk:4 v6only:1 <->                                                    
tcp    LISTEN  0       25                   0.0.0.0:514           0.0.0.0:*      ino:33595 sk:7 <->                                                             
tcp    LISTEN  0       25                      [::]:514              [::]:*      ino:33596 sk:9 v6only:1 <->      

Se possiedi il servizio firewall ufw, devi consentire le regole della porta del firewall rsyslog:

sudo ufw allow 514/tcp
sudo ufw allow 514/udp

Per verificare la configurazione , esegui il comando seguente:

sudo rsyslogd -N1 -f /etc/rsyslog.conf

Configura Rsyslog sul client

Una volta completata questa configurazione del server rsyslog, il passaggio successivo consiste nel configurare la macchina client rsyslog per inviare i log al telecomando server rsyslog.

Mentre andiamo con il file rsyslog.conf su un server remoto, lo stesso aprirà questo file sul lato client con il tuo editor preferito e modificherà alcune modifiche:

sudo nano /etc/rsyslog.conf

E consenti la conservazione dell'FQDN:in alternativa, per fare in modo che rsyslog invii il nome di dominio completo (FQDN, come system1.example.com) anziché semplicemente il nome host (system1), usa la direttiva:

$PreserveFQDN on

Aggiungi il server rsyslog remoto configurato alla fine.

 @192.168.0.101:514

Oppure puoi abilitare l'invio di log su UDP. Per TCP usa @@ , invece di uno

*.* @@192.168.0.101:514

Per la fine aggiungi queste seguenti variabili nel caso in cui il server rsyslog si interrompa:

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

Quindi riavvia il servizio rsyslog:

sudo systemctl restart rsyslog

Verifica i log

Dopo aver completato la configurazione sulla macchina client, vogliamo verificare che tutto sia andato bene.

Vai al tuo server Rsyslog per verificare i log dal tuo computer client:

$ ls /var/log/

Troverai qualcosa del genere:

Nel mio caso la directory denominata obrad è il nome della mia macchina client che sto attualmente utilizzando. Entreremo in questa directory e vedremo qualcosa del genere:

Dovresti vedere tutti i file di registro generati da Rsyslog.

Puoi controllare uno qualsiasi di questi log con il seguente comando:Esaminiamo ad esempio systemd.log .

$ tail -f /var/log/obrad/systemd.log

E vedrai qualcosa del genere:

2021-03-25T11:31:59+00:00 obrad systemd[1206]: Started VTE child process 42166 launched by gnome-terminal-server process 3186.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Created slice dbus\x2d:1.2\x2dorg.gnome.gedit.slice.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Started dbus-:[email protected].
2021-03-25T11:32:31+00:00 obrad systemd[1206]: dbus-:[email protected]: Succeeded.

Come puoi vedere, ho avviato la modifica del testo di gedit e terminale sul mio computer client e Rsyslog ha generato e visualizzato questo in output.

Conclusione

In questo tutorial, abbiamo imparato come configurare i parametri di base per rsyslog utilizzando il modello client-server su Ubuntu 20.04. syslog-ng, FluentD, Logstash, GreyLog2 e Logagent, Filebeat sono le altre alternative per Rsyslog.




Ubuntu
  1. Come configurare il server Rsyslog su Ubuntu 18.04 LTS

  2. Come configurare il server Rsyslog su Debian 11

  3. Come configurare il server di registrazione centralizzato utilizzando Rsyslog

  4. Imposta il server Rsyslog su Ubuntu 20.04 - Come farlo?

  5. Come configurare la registrazione remota di Rsyslog su Linux (server di registro centrale)

Come configurare OpenVPN su Ubuntu Server

Come configurare Git Server su Ubuntu 20.04

Come configurare il server Rsyslog su Ubuntu

Come configurare una VPN su Ubuntu

Come configurare il server DHCP su Ubuntu

Come configurare Rsyslog su Ubuntu 20.04 LTS