Come installare il server di log Rsyslog su Linux

Come amministratori, personale di supporto IT o responsabili dell'area reti e sistemi, abbiamo qualcosa di fondamentale per aiutarci a tenere traccia di ogni evento che si verifica all'interno del sistema, sia a livello di utenti, applicazioni o sistema stesso, e questi sono i eventi.

Ogni evento registra una serie di elementi che ci aiutano a determinare nel dettaglio ogni attività con valori come data, ora, ID, utente ed evento verificatosi, permettendoci così una gestione e amministrazione molto più centralizzata.
Possiamo vedere che ogni record appartiene a una categoria diversa come sistema, sicurezza, ecc.

In ambienti Linux abbiamo a nostra disposizione l'utility Rsyslog con la quale sarà possibile gestire questi eventi in modo semplice e completo.

Cos'è RsyslogRsyslog (racket-fast system for log - sistema rapido per l'elaborazione dei log) è un'utility progettata per offrire alte prestazioni, eccellenti caratteristiche di sicurezza e un design modulare che gli consente di essere scalabile per adattarsi a ogni esigenza aziendale.

Rsyslog è in grado di accettare input da un'ampia varietà di fonti, trasformarli e generare risultati per varie destinazioni, ottimizzando la gestione IT.

RSYSLOG è in grado di fornire più di un milione di messaggi al secondo a destinazioni locali quando viene applicata un'elaborazione limitata, comprese le destinazioni remote.

Funzionalità di RsyslogQuando si utilizza Rsyslog avremo funzionalità come:

  • $ LocalHostName [nome] direttiva: Questa direttiva ci permette di sovrascrivere il nome host del sistema con quello specificato nella direttiva. Se la direttiva viene data più volte, tutte tranne l'ultima verranno ignorate.
  • Aggiunto il supporto per Hadoop HDFS.
  • Ha un modulo impstat per eseguire statistiche periodiche sui contatori Rsyslog.
  • Ha il plugin imptcp.
  • Include un nuovo tipo di modulo "generatore di stringhe", utilizzato per accelerare l'elaborazione dell'output.
  • Supporta OSX e Solaris.
  • Possibilità di creare parser di messaggi personalizzati.
  • Supporto multi-regola per imudp.
  • Nuova interfaccia del modulo di uscita transazionale che fornisce prestazioni superiori.
  • Multi-threading
  • Supporta i protocolli TCP, SSL, TLS, RELP
  • Supporta MySQL, PostgreSQL, Oracle e altro
  • Filtra qualsiasi parte del messaggio syslog
  • Formato di output completamente configurabile
  • Adatto per reti di trasmissione di classe business

Filtraggio RsyslogRsyslog può filtrare i messaggi syslog in base alle proprietà e alle azioni selezionate, questi filtri sono:

  • Filer di struttura o prioritari
  • Filtri basati sulla proprietà
  • Filtri basati su espressioni

Il filtro della struttura è rappresentato dal sottosistema Linux interno che è responsabile della produzione dei record, abbiamo le seguenti opzioni:

  • auth / authpriv = Sono i messaggi prodotti dai processi di autenticazione
  • cron = Sono record associati alle attività cron
  • daemon = Questi sono messaggi relativi ai servizi di sistema in esecuzione
  • kernel = Indica i messaggi del kernel Linux
  • mail = Include i messaggi dal server di posta
  • syslog = Sono messaggi relativi a syslog o altri demoni
  • lpr = Copre le stampanti o i messaggi del server di stampa
  • local0 - local7 = Conta i messaggi personalizzati sotto il controllo dell'amministratore
I livelli di priorità o gravità con Rsyslog sono assegnati a una parola chiave e un numero come segue:
  • emerg = Emergenza - 0
  • avviso = Avvisi - 1
  • err = Errori - 3
  • warning = Avvertenze - 4
  • avviso = Avviso - 5
  • info = Informazioni - 6
  • debbug = Debug - 7

1. Come configurare e controllare lo stato di Rsyslog in Linux

Passo 1
Il demone Rsyslog viene installato automaticamente sulla maggior parte delle distribuzioni Linux, ma in caso contrario, dobbiamo eseguire i seguenti comandi:

Sui sistemi Debian

 sudo apt-get install Rsyslog 

Sui sistemi RedHat o CentOS

 sudo yum install Rsyslog 

Passo 2
Possiamo controllare lo stato corrente di Rsyslog eseguendo la seguente riga:

Sulle distribuzioni Linux che utilizzano Systemd

 stato systemctl rsyslog.service 

Nelle versioni precedenti di Linux

 servizio rsyslog status /etc/init.d/rsyslog status

INGRANDIRE

Passaggio 3
Nel caso in cui lo stato del servizio Rsyslog sia inattivo, possiamo avviarlo eseguendo quanto segue:

Nelle nuove versioni di Linux

 systemctl avvia rsyslog.service 

Nelle versioni precedenti di Linux

 servizio rsyslog start /etc/init.d/rsyslog start

INGRANDIRE

2. Configurazione di Rsyslog su Linux


Per configurare un programma rsyslog per l'esecuzione in modalità server, dobbiamo modificare il file di configurazione nella directory /etc/rsyslog.conf.

Passo 1
Possiamo accedere utilizzando l'editor desiderato:

 sudo nano /etc/rsyslog.conf

INGRANDIRE

Passo 2
Lì apporteremo le seguenti modifiche. Individua e decommenta, rimuovendo il segno (#), dalle seguenti righe per consentire la ricezione dei messaggi di registro UDP sulla porta 514. Per impostazione predefinita, la porta UDP viene utilizzata da syslog per inviare e ricevere messaggi:

 $ ModLoad imudp $ UDPServerRun 514
Passaggio 3
Il protocollo UDP non è affidabile per lo scambio di dati su una rete, quindi possiamo configurare Rsyslog per inviare messaggi di registro a un server remoto tramite il protocollo TCP. Per abilitare il protocollo di ricezione TCP, rimuoveremo le seguenti righe:
 $ ModLoad imtcp $ InputTCPServerRun 514
Passaggio 4
Ciò consentirà al demone rsyslog di collegarsi e ascoltare su un socket TCP sulla porta 514.
Entrambi i protocolli possono essere abilitati in rsyslog per essere eseguiti contemporaneamente su Linux.
Se è necessario specificare a quali mittenti è consentito l'accesso al demone rsyslog, dobbiamo aggiungere le seguenti righe:
 $ AllowedSender TCP, 127.0.0.1, 192.168.0.5/24, * .domain.com 

INGRANDIRE

Passaggio 5
A questo punto sarà necessario creare un nuovo template che verrà analizzato dal demone rsyslog prima di ricevere i log in arrivo. Questo modello dovrebbe indicare al server Rsyslog locale dove archiviare i messaggi di registro in arrivo. Questo modello andrà dopo la riga $ AllowedSender:

 $ template Log in entrata, "/ var / log /% HOSTNAME% /% NOME PROGRAMMA% .log" *. *? Log in entrata & ~ 

INGRANDIRE

Passaggio 6
Per registrare solo i messaggi generati da kern aggiungeremo quanto segue. Con quanto sopra, i record ricevuti vengono analizzati dal template e verranno archiviati nel file system locale nella directory /var/log/, nel percorso:% HOSTNAME% e% PROGRAMNAME%.

 kern. *?
Passaggio 7
Possiamo salvare le modifiche utilizzando la seguente combinazione di tasti:

Ctrl + O

Lasciamo l'editor utilizzando:

Ctrl + X

3. Riavvia il servizio e controlla le porte Rsyslog su Linux

Passo 1
Quando apportiamo qualsiasi tipo di modifica, dobbiamo riavviare il servizio eseguendo una delle seguenti opzioni:

 sudo service rsyslog restart sudo systemctl restart Rsyslog
Passo 2
Per verificare le porte utilizzate da Rsyslog eseguiremo quanto segue:
 sudo netstat -tulpn | grep rsyslog
Passaggio 3
Come abbiamo indicato, la porta utilizzata sarà la 514, dobbiamo abilitarla nel firewall per l'utilizzo con le seguenti righe.

Su RedHat e CentOS

 firewall-cmd --permanent --add-port = 514 / tcp firewall-cmd -reload

In Debian

 ufw allow 514 / tcp ufw allow 514 / udp
Se usiamo IPTables:
 iptables -A INPUT -p tcp -m tcp --dport 514 -j ACCEPT iptables -A INPUT -p udp --dport 514 -j ACCEPT

INGRANDIRE

In questo modo abbiamo installato Rsyslog in Linux per gestire i vari tipi di log che vengono costantemente generati al suo interno.

wave wave wave wave wave