Registrazione remota
La configurazione standard della gestione dei registri di sistema ruota i file di registro ogni settimana e li conserva per quattro rotazioni. È spesso desiderabile mantenere i registri più a lungo rispetto all'impostazione predefinita di quattro settimane, soprattutto quando si stabiliscono le tendenze delle prestazioni del sistema relative ad attività, come le chiusure finanziarie di fine mese, che vengono eseguite solo una volta al mese. Inviando messaggi di registro a un host di registro remoto con memoria di massa dedicata, gli amministratori possono mantenere grandi archivi di registri di sistema per i loro sistemi senza modificare la configurazione di rotazione dei registri predefinita, che ha lo scopo di evitare che i registri consumino eccessivamente la memoria su disco.
La raccolta centralizzata dei messaggi di registro di sistema può anche essere molto utile per monitorare lo stato dei sistemi e per identificare rapidamente i problemi. Fornisce inoltre una posizione di backup per i messaggi di registro nel caso in cui un sistema subisca un guasto catastrofico del disco rigido o altri problemi, che causano la non disponibilità dei registri locali. In queste situazioni, la copia dei messaggi di registro che risiedono sull'host di registro centrale può essere utilizzata per diagnosticare il problema che ha causato il problema.
La registrazione di sistema standardizzata è implementata in Red Hat Enterprise Linux 7 dal rsyslog servizio. I programmi di sistema possono inviare messaggi syslog al rsyslogd locale servizio, che quindi reindirizzerà quei messaggi ai file in /var/log , server di log remoti o altri database in base alle impostazioni nel relativo file di configurazione, /etc/rsyslog.conf .
I messaggi di registro hanno due caratteristiche che vengono utilizzate per classificarli. La funzione di un messaggio di registro indica il tipo di messaggio che è. La priorità, invece, indica l'importanza dell'evento registrato nel messaggio.
Livelli di priorità Syslog
Priorità | Significato |
---|---|
emerge | Il sistema è inutilizzabile |
avviso | Richiesta azione immediata |
critico | Condizione critica |
err | Condizione di errore |
avviso | Condizione di avviso |
avviso | Condizione normale ma significativa |
informazioni | Messaggi informativi |
debug | Debug dei messaggi |
Configurazione di un host di log centrale
L'implementazione di un host di log centrale richiede la configurazione del servizio rsyslog su due tipi di sistemi:i sistemi remoti da cui provengono i messaggi di log e l'host di log centrale che riceve i messaggi. Sull'host di registro centrale, il servizio rsyslog deve essere configurato in modo che i messaggi di registro da host remoti vengano accettati.
Per configurare il servizio rsyslog sull'host di registro centrale in modo che accetti i registri remoti, decommentare le linee di ricezione TCP o UDP nella sezione dei moduli in /etc/rsyslog.conf file.
Per la ricezione UDP:
# Provides UDP syslog reception $ModLoad imudp.so $UDPServerRun 514
per la ricezione TCP:
# Provides TCP syslog reception $ModLoad imtcp.so $InputTCPServerRun 514
TCP fornisce una consegna più affidabile dei messaggi di registro remoti, ma UDP è supportato da una più ampia varietà di sistemi operativi e dispositivi di rete.
Nota :Il semplice trasporto TCP dei messaggi syslog è implementato abbastanza ampiamente ma non ancora standardizzato. La maggior parte delle implementazioni attualmente utilizza la porta 514/TCP, che è la porta legacy rshd. Se il sistema ha installato il pacchetto rsh-server e sta utilizzando il vecchio servizio rshd non sicuro, entrerà in conflitto con l'utilizzo della porta 514/TCP per la semplice ricezione del syslog TCP. Configurare il server di registro per l'utilizzo di una porta diversa modificando l'impostazione per $InputTCPServerRun.
Le regole contenute in /etc/rsyslog.conf sono configurate per impostazione predefinita per consentire la registrazione dei messaggi su un singolo host. Pertanto, ordina e raggruppa i messaggi in base alla struttura. Ad esempio, i messaggi di posta vengono incanalati in /var/log/maillog mentre i messaggi generati dal
dal demone crond vengono consolidati in /var/log/cron per facilitare l'individuazione di ogni tipo di messaggio.
Sebbene l'ordinamento dei messaggi in base alla struttura sia l'ideale su un singolo host, produce un risultato indesiderato su un host di registro centrale poiché fa sì che i messaggi provenienti da diversi host remoti vengano mescolati tra loro. Su un host di log centrale, in genere è più ottimale che i messaggi di log provenienti da sistemi remoti rimangano separati l'uno dall'altro. Questa separazione può essere ottenuta definendo nomi di file di registro dinamici utilizzando la funzione modello di rsyslog.
I modelli sono definiti in /etc/rsyslog.conf e possono essere utilizzati per generare regole con nomi di file di registro dinamici. Una definizione di modello è costituita da $template direttiva, seguita da un nome di modello e quindi da una stringa che rappresenta il testo del modello. Il testo del modello può essere reso dinamico utilizzando valori sostituiti dalle proprietà di un messaggio di log. Ad esempio, per indirizzare i messaggi cron syslog da diversi sistemi a file diversi su un host di log centrale, utilizza il modello seguente per generare nomi di file di log dinamici basati su HOSTNAME proprietà di ogni messaggio:
$template DynamicFile,"/var/log/loghost/%HOSTNAME%/cron.log"
Il nome del file dinamico creato utilizzando la definizione del modello può quindi essere referenziato dal nome del modello in una regola come segue:
cron.* ?DynamicFile
Sui sistemi che eseguono una registrazione estremamente dettagliata, potrebbe essere opportuno disattivare la sincronizzazione del file di registro dopo ogni operazione di scrittura per migliorare le prestazioni. La sincronizzazione di un file di registro dopo ogni registrazione può essere omessa anteponendo al nome del file di registro il segno meno (-) in una regola di registrazione. Tuttavia, il compromesso tra prestazioni migliorate crea la possibilità di una perdita di dati di registro se il sistema si arresta in modo anomalo subito dopo un tentativo di scrittura.
Quello che segue è un altro esempio dell'uso dei modelli per generare nomi di file di registro dinamici. In questo esempio, i messaggi di log remoti verranno ordinati in base al nome host e ai valori della struttura facendo riferimento a HOSTNAME e test di syslogfacility proprietà. I messaggi di registro verranno scritti nei nomi dei file di registro generati dinamicamente e non verrà eseguita alcuna sincronizzazione dopo l'operazione di scrittura.
$template DynamicFile,"/var/log/loghost/%HOSTNAME%/%syslogfacility-text%.log" *.* -?DynamicFileNota :Un elenco completo delle proprietà dei messaggi syslog rese disponibili da rsyslog può essere trovato
nella sezione Proprietà disponibili della pagina man di rsyslog.conf(5).
Una volta attivata la ricezione di syslog e create le regole desiderate per la separazione dei log per host, riavviare il servizio rsyslog per rendere effettive le modifiche alla configurazione. Inoltre, aggiungi le regole del firewall UDP e/o TCP necessarie per consentire il traffico syslog in entrata e quindi ricarica firewalld .
# systemctl restart rsyslog # firewall-cmd --add-port=514/udp --permanent # firewall-cmd --add-port=514/tcp --permanent # firewall-cmd --reload
Quando vengono creati nuovi file di registro, potrebbero non essere inclusi nella pianificazione di rotazione del registro esistente dell'host di registro. Questo dovrebbe essere risolto per garantire che i nuovi file di registro non crescano a dimensioni ingestibili. Ad esempio, per includere i nuovi file di registro degli esempi precedenti nella rotazione dei registri, aggiungi la seguente voce all'elenco dei file di registro in /etc/logrotate.d/syslog file di configurazione.
/var/log/loghost/*/*.log
Reindirizzamento della registrazione all'host di registro centrale
Una volta che l'host di log centrale è configurato per accettare la registrazione remota, il servizio rsyslog può essere configurato su sistemi remoti per inviare i log all'host di log centrale. Per configurare una macchina per l'invio dei registri a un server rsyslog remoto, aggiungere una riga alla sezione delle regole nel file /etc/rsyslog.conf. Al posto del nome del file, utilizzare l'indirizzo IP del server rsyslog remoto. Per utilizzare UDP, anteporre all'indirizzo IP un unico segno @. Per utilizzare TCP, anteponigli due simboli @ (@@).
Ad esempio, per inviare tutti i messaggi con informazioni o priorità più alta a loghost.example.com tramite UDP, utilizzare la seguente riga:
Per inviare tutti i messaggi a loghost.example.com tramite TCP, utilizzare la seguente riga:
*.* @@loghost.example.com
Facoltativamente, il nome host del registro può essere aggiunto con :PORT , dove PORT è la porta utilizzata dal server rsyslog remoto. Se non viene fornita alcuna porta, presuppone la porta predefinita 514 .
Dopo aver aggiunto le regole, riavvia il servizio rsyslog e invia un messaggio di prova utilizzando il comando logger:
[root@logclient ~]# logger "Test from logclient"
Controlla i log sul server remoto per assicurarti che il messaggio sia stato ricevuto.