In questo post imparerai come esportare i log dei tuoi server con Rsyslog in Centos 8
In questo articolo, illustreremo la configurazione di un demone Rsyslog CentOS/RHEL 8 per recapitare i messaggi di registro a un server Rsyslog remoto. Questa configurazione garantisce che lo spazio su disco sulla macchina sia disponibile per altri scopi.
In CentOS 8, il demone Rsyslog è già installato e operativo per impostazione predefinita. Emetti i seguenti comandi per vedere se il servizio rsyslog è attivo sul sistema.
# grep rsyslog | rpm –q
# rsyslogd –v
Se il pacchetto Rsyslog non è installato sul tuo sistema CentOS, esegui il comando seguente per installarlo.
# yum install rsyslog
Esporta i log dei tuoi server con Rsyslog
Modificare il file di configurazione rsyslog come segue per forzare il daemon Rsyslog installato su un sistema CentOS 8 a funzionare come client di registro e inviare tutti i messaggi di registro generati localmente a un server Rsyslog distante:
Per iniziare a modificare, apri il file di configurazione principale:
# vim /etc/rsyslog.conf
Quindi, come mostrato nell'estratto seguente, aggiungi la seguente riga alla fine del file.
# *. * @192.168.1.59:514
Assicurarsi che l'indirizzo IP e l'FQDN del server rsyslog remoto siano sostituiti in modo appropriato nella riga precedente. La riga precedente indica al demone Rsyslog di inviare tutti i messaggi di registro all'IP 192.168.1.59 sulla porta 514/UDP, indipendentemente dalla struttura o dalla gravità.
Aggiungi un altro carattere @ davanti all'host remoto se il server di registro remoto è configurato per accettare solo connessioni TCP o se desideri utilizzare un protocollo di rete di trasporto affidabile come TCP, come illustrato nell'esempio seguente:
# *. * @@logs.domain.lan:514
I caratteri speciali, come =o!, possono essere anteposti ai livelli di priorità in Linux rsyslog per segnalare "questa priorità solo" per il segno di uguale e "non questa priorità o superiore a questa" per!
Di seguito sono riportati alcuni esempi di qualificatori del livello di priorità di Rsyslog:
kern.info =Registri del kernel con priorità di informazioni o superiore.
kern.=info =Sono consentiti solo i messaggi del kernel con la priorità delle informazioni.
kern.info;kern.!err =Sono consentiti solo i messaggi del kernel con le informazioni sulle priorità, l'avviso e l'avviso.
kern.debug;kern.!=avviso =Fatta eccezione per l'avviso, tutte le priorità del kernel sono uguali.
kern.* =Tutti i messaggi con una priorità nel kernel
kern.none =Indipendentemente dalla priorità, non registrare alcun messaggio relativo alla struttura del kernel associato.
Ad esempio, se desideri inviare solo un sottoinsieme di messaggi di struttura a un server di registro remoto, come tutti i messaggi di posta associati indipendentemente dalla priorità, aggiungi la seguente riga al file di configurazione rsyslog:
# mail.* @192.168.1.59:514
Infine, affinché le impostazioni aggiornate abbiano effetto, è necessario riavviare il servizio Rsyslog con il seguente comando:
# systemctl restart rsyslog.service
Se il demone Rsyslog non viene attivato durante l'avvio per qualche motivo, eseguire il comando seguente per abilitare il servizio a livello di sistema:
# systemctl enable rsyslog.service
Invia i registri del server Web a un server di registro remoto
Aggiungendo la seguente riga al file di configurazione principale di Apache, come mostrato di seguito, il server HTTP può essere configurato per trasmettere messaggi di log a un server syslog remoto.
# vim /etc/httpd/conf/httpd.conf
Sul file di configurazione principale di Apache aggiungi la riga sottostante.
CustomLog "| /bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-access.log | /usr/bin/logger -thttpd -plocal1.notice'" combined
La riga dice al demone HTTP di scrivere messaggi di registro nel file di registro del filesystem, ma gli dice anche di inviarli a un server syslog lontano designandoli come provenienti dalla struttura local1.
Se desideri inviare messaggi di log degli errori Apache anche a un server syslog remoto, crea una nuova regola simile a quella data sopra, ma cambia il nome del file di log httpd e il livello di gravità del file di log in modo che corrisponda alla priorità dell'errore , come mostrato nell'esempio seguente:
ErrorLog "|/bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-error.log | /usr/bin/logger -thttpd -plocal1.err'"
Dopo aver modificato le righe precedenti, dovrai riavviare il demone Apache per vedere che le modifiche avranno effetto:
# systemctl restart httpd.service
Aggiungendo le seguenti righe di codice a un file di configurazione nginx, il server web Nginx ha la capacità integrata di registrare direttamente i suoi messaggi su un server syslog remoto a partire dalla versione 1.7.1.
error_log syslog:server=192.168.1.59:514,facility=local7,tag=nginx,severity=error;
access_log syslog:server=192.168.1.59:514,facility=local7,tag=nginx,severity=info main;/code>
Per ricevere i log inviati dal server Web Apache, apportare le seguenti modifiche al file di configurazione rsyslog sul server Rsyslog remoto.
local1.* @Apache_IP_address:514
Questo conclude la nostra discussione. Hai impostato correttamente il demone Rsyslog per l'esecuzione in modalità client, oltre a indirizzare Apache o Nginx a instradare i messaggi di registro a un server syslog remoto.
Se il tuo sistema si rompe, dovresti essere in grado di capire cosa è andato storto guardando il contenuto dei file di registro salvati sul server syslog remoto.
Ora sai come esportare i log dei tuoi server usando Rsyslog.
Controlla la nostra homepage per ulteriori guide