Necessità di un server Rsyslog centralizzato
Ogni sistema *NIX ha una sorta di funzione di registrazione che produrrà registri di testo che possono essere scritti in una posizione arbitraria su un dispositivo di archiviazione (normalmente, per impostazione predefinita una partizione del disco locale). Ora, questo è essenziale ma può anche produrre problemi come:
- È necessario disporre di uno spazio di archiviazione adeguato sul server locale per salvare i registri.
- Devi mettere in atto la rotazione per impedire che diventino troppo grandi.
- Se i registri contengono informazioni sensibili come il numero di carta di credito, desideri che vengano archiviati in un luogo sicuro, preferibilmente non sul server locale.
- Potresti perdere i log se si verifica un disastro sul server e i dati non sono recuperabili.
Per evitare tutti questi problemi possiamo utilizzare un server syslog centralizzato. Il server syslog centralizzato fornisce sicurezza, archiviazione adeguata, funzionalità di backup centralizzata ecc.
Il post descrive i passaggi per configurare Rsyslog per inviare file di registro a un server remoto utilizzando TCP e UDP.
Configurazione del server Rsyslog centralizzato
1. Modifica /etc/rsyslog.conf e decommenta le seguenti righe:
Per TCP;
# vi /etc/rsyslog.conf $ModLoad imtcp $InputTCPServerRun 514
Per UDP;
# vi /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514Nota :È possibile utilizzare sia la modalità TCP che UDP per trasferire i registri al server rsyslog remoto. Ma consiglierei di usare UDP in quanto è molto semplice sul server client in termini di prestazioni. L'unico aspetto negativo dell'utilizzo di UDP è che alcuni messaggi di registro potrebbero andare persi se il server è troppo occupato per ricevere i pacchetti UDP. Usa TCP dove i tuoi log sono critici; in caso contrario, mantieni l'UDP.
2. Salva il file e riavvia il servizio rsyslog.
# service rsyslog restart ### CentOS/RHEL 6 # systemctl restart rsyslog ### CentOS/RHEL 7
Configurazione del client Rsyslog
1. Modificare /etc/rsyslog.conf sul server client e aggiungere le righe seguenti. Quando anteponi il tuo host remoto con un singolo @ simbolo, stai usando UDP. Per usare TCP, usa @@ invece.
Per UDP
# vi /etc/rsyslog.conf # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @remote-host:514 *.* @x.x.x.x:514
Per TCP
# vi /etc/rsyslog.conf # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @@remote-host:514 *.* @@x.x.x.x:514
Qui, sostituisci x.x.x.x con il tuo server rsyslog centralizzato. Se non vuoi inviare log con tutte le severità incluse (*.*), puoi modificare l'ultima riga con qualcosa come:
*.info @x.x.x.x:514
2. Salvare il file e riavviare il servizio rsyslog.
# service rsyslog restart ### CentOS/RHEL 6 # systemctl restart rsyslog ### CentOS/RHEL 7
Verifica della configurazione
Puoi utilizzare il "logger ” comando per generare manualmente un messaggio di registro e vedere se il server syslog remoto lo riceve correttamente.
Sul server client:
# logger "Test message from the system `hostname`"
Sul server rsyslog centralizzato:
# tail /var/log/messages June 15 12:32:01 geeklab root: Test message from the system geeklab
Esecuzione di Rsyslog su una porta non standard
Se vuoi eseguire rsyslog su una porta diversa dalla porta predefinita 514, dovrai eseguire ulteriori modifiche a selinux. Per visualizzare le impostazioni correnti delle porte SELinux per rsyslog:
# semanage port -l| grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 514, 601, 20514
Per aggiungere una porta UDP 541 a SELinux, utilizzare il comando:
# semanage port -a -t syslogd_port_t -p udp 541
Verifica se la porta è stata aggiunta nelle impostazioni di SELinux:
# semanage port -l| grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 541, 514, 601, 20514