GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare rsyslog per creare un server di aggregazione dei registri Linux

Molto tempo fa, quando ero amministratore di sistema per un'altra azienda su un'altra piattaforma, non avevamo un mezzo per centralizzare i file di registro. La maggior parte delle mattine, quando arrivavo al lavoro, mi versavo una tazza di caffè e passavo dai 20 ai 30 minuti in remoto su ciascun server, rivedendo i registri degli eventi e poi annotando eventuali problemi rilevati. Ti assicuro che questo non era il modo più efficiente per gestire i log. Era, tuttavia, l'unica opzione che avevo.

Linux, tuttavia, utilizza lo strumento syslog basato su Unix per gestire i file di registro locali. La maggior parte delle moderne distribuzioni Linux utilizza effettivamente un demone nuovo e migliorato chiamato rsyslog . rsyslog è in grado di inoltrare i registri a server remoti. La configurazione è relativamente semplice e consente agli amministratori Linux di centralizzare i file di registro per l'archiviazione e la risoluzione dei problemi. In questo articolo, ti mostro come configurare un server per fungere da repository di file di registro e quindi come configurare i server Linux per inoltrargli i loro registri.

I file di registro sono un componente critico dell'infrastruttura del server. Gli amministratori di sistema utilizzano i file di registro per eseguire molte attività:

  • Risoluzione dei problemi
  • Verifica dei contratti di servizio (SLA)
  • Linea di base
  • Manutenzione preventiva

Configura l'host del registro

Farò riferimento al server che ospita i file di registro come host di registro . Questo server potrebbe richiedere alcune configurazioni uniche rispetto ad altri dispositivi Linux. Considera le seguenti impostazioni per il tuo server host di log.

Partizione separata per /var/log

Le linee guida per l'installazione spesso consigliano agli amministratori di montare /var/log su una partizione separata per evitare che i log fuori controllo riempiano la memoria in cui risiede la radice del filesystem. Tale pratica è fondamentale quando il server riceve file di registro da un gran numero di dispositivi remoti.

File di configurazione

Il vero rsyslog la configurazione è gestita tramite un file di configurazione in /etc directory. Dovrai modificare diverse righe. Le impostazioni potrebbero essere leggermente diverse, a seconda della distribuzione. Eseguire il backup del file di configurazione originale, quindi aprire /etc/rsyslog.conf file con il tuo editor di testo preferito.

Innanzitutto, decommenta le due righe per UDP:

# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514

Puoi anche usare TCP come protocollo di trasporto.

# Provides TCP syslog reception
$ModLoad imtcp.so
$InputTCPServerRun 514

Troverai queste righe nella parte superiore del file di configurazione nei Moduli sezione.

Quindi, configura un modello per i log in entrata. Se non configuri un modello, tutte le voci di registro dai server remoti si mescolano con i registri locali del server host di registro.

$template DynamicFile,"/var/log/%HOSTNAME%/forwarded-logs.log" 
*.* -?DynamicFile

Questo modello inserisce tutti i registri da un determinato host in una directory denominata per quell'host. Ad esempio, se hai un server denominato WebServer1 , una directory denominata WebServer1 viene creato e tutti i registri di quel server vengono archiviati in quella directory. I modelli sono impostati in un Modelli sezione del file di configurazione. Se non viene definita alcuna sezione specifica, assicurati solo che i modelli siano definiti prima delle Regole .

Ci sono molte diverse opzioni di modelli disponibili online.

Dopo aver decommentato il protocollo del livello di trasporto e impostato un modello, salva le modifiche al file. Non dimenticare di riavviare rsyslog .

# systemctl restart rsyslog

Firewall

rsyslog utilizza la porta 514 per la connettività di rete, indipendentemente dal fatto che utilizzi TCP o UDP. È necessario aprire la porta 514 nel firewall sul server host del registro. Supponendo che tu stia utilizzando UDP, la configurazione del firewall è simile a questa:

# firewall-cmd --add-port=514/udp --permanent

# firewall-cmd --reload

Usa il seguente comando per confermare la tua configurazione:

# firewall-cmd --list-all

Logrotate

Potrebbe essere utile configurare logrotate , anche. logrotate aiuta gli amministratori a gestire un numero elevato di file di registro implementando l'archiviazione, la compressione, l'eliminazione e altre attività di gestione dei file di registro necessarie. Questo strumento è stato efficacemente trattato da Edem Afenyo nell'articolo Enable Sysadmin Configurazione di Logrotate in Linux, quindi non c'è motivo per me di parlarne qui.

Documentare l'indirizzo IP del server host di log

Usa ifconfig o ip addr per documentare l'indirizzo IP del server host del registro. Utilizzerai questo indirizzo nei file di configurazione del client.

Nota bonus :Consiglio di utilizzare gli indirizzi IP nei file di configurazione come /etc/rsyslog.conf invece dei nomi host. In questo modo si semplifica la configurazione e si rimuove la risoluzione dei nomi dal processo di connessione del computer e dal processo di risoluzione dei problemi dell'amministratore di sistema. Elimina un intero seguito di complessità.

[ Potrebbe piacerti anche: Configurazione di logrotate in Linux ]

Configura un client di registro

Inizierò questa sezione configurando un server Linux di base per inoltrare i suoi file di registro al server host di registro configurato in precedenza. Questa configurazione è un po' più corta. Non dimenticare di eseguire il backup del /etc/rsyslog.conf originale file.

Apri il /etc/rsyslog.conf file di configurazione con il tuo editor preferito (preferisco Vim, ma qualunque cosa funzioni per te va bene). Passa alle Regole sezione e creare una nuova riga prima di qualsiasi altra voce. Per essere chiari, stai aggiungendo questa riga prima della struttura .gravità inserimenti. In questo modo tutte le corrispondenze verranno inoltrate al server di destinazione.

Aggiungi le seguenti informazioni, dove IP è l'indirizzo IP del server host del registro:

*.* @IP

Nota :Se stai usando TCP, la sintassi è *.* @@IP

Salva le modifiche nel file di configurazione, quindi riavvia il rsyslog servizio:

# systemctl restart rsyslog

Verifica la configurazione

Il logger comando viene utilizzato per creare manualmente una voce del file di registro. Esegui il comando seguente per generare una voce:

# logger Test

Verifica la voce del file di registro utilizzando tail comando per visualizzare le voci più recenti in /var/log/messages accedere al server locale:

# tail /var/log/messages

Dovresti vedere il messaggio di prova.

Quindi, passa al server host del registro, quindi visualizza il contenuto di /var/log :

# ls /var/log

Dovresti vedere una directory denominata per il server remoto che hai configurato. Se ls il contenuto di quella directory, dovresti vedere i log inoltrati dal server. Puoi usare la tail comando per visualizzare il contenuto dei registri nella sottodirectory di questo server. Dovresti anche vedere il messaggio Test ripetuto qui.

Configura i tuoi server rimanenti

A questo punto, puoi configurare i tuoi server Linux rimanenti per inoltrare i loro log all'host di log. Potresti distribuire una nuova versione di /etc/rsyslog.conf file utilizzando rsync, SSH o anche impostare la configurazione con Ansible.

Inoltra registri specifici

Le impostazioni di esempio sopra inoltrano tutti i registri al sistema host dei registri (da cui il *.* sintassi). Puoi scegliere di inoltrare solo voci per singole strutture o inoltrare voci per strutture diverse a server host di log diversi.

Supponiamo che tu voglia inviare cron accede a hostlogserver1 (dove gli amministratori di sistema possono rivedere le voci) e FTP accede a hostlogserver2 (dove gli amministratori di rete possono controllare le voci). La configurazione è simile a questa:

cron.* @10.1.1.15

ftp.* @10.1.1.20

Dove hostlogserver1 ha un indirizzo IP di 10.1.1.15 e hostlogserver2 ha un indirizzo IP di 10.1.1.20 .

Puoi anche inoltrare le stesse voci a due server diversi:

*.* @10.1.1.15

*.* @10.1.1.20

Altre piattaforme

Ricordiamo che nell'introduzione ho sottolineato che questo meccanismo di file di registro è in realtà un sistema Unix, non una funzione specifica per Linux. Ciò significa che può partecipare praticamente qualsiasi dispositivo basato su Unix che conserva i log.

Configura i router per inoltrare i log

Recentemente stavo lavorando nell'ambiente di laboratorio di un cliente che utilizzava un router configurato con VyOS. VyOS è un router basato su Linux, VPN, firewall e distribuzione NAT. Abbiamo usato il processo sopra (modificando il /etc/rsyslog.conf file di configurazione) per impostare il router in modo che inoltri i propri log a un server centrale. Gli amministratori di rete possono archiviare facilmente router, VPN e altri registri utilizzando rsyslog .

Un altro sistema operativo utilizzato nell'ambiente di laboratorio era pfSense. pfSense è un sistema operativo derivato da FreeBSD che può anche inoltrare i log a una posizione centrale usando rsyslog . Ancora una volta, era una configurazione semplice, anche se questa volta avveniva tramite una GUI basata sul Web.

[ Corso online gratuito:panoramica tecnica di Red Hat Enterprise Linux. ] 

Concludi

Considera le opzioni disponibili per gli amministratori di sistema con rsyslog inoltro del registro. Il tuo team di rete potrebbe centralizzare i log per tutti i router interni e perimetrali, le appliance VPN e i firewall. Gli amministratori di sistema potrebbero organizzare i registri in base alle aree di responsabilità o all'area geografica. La centralizzazione può influire sui team di sicurezza, service desk e amministratori del server. rsyslog è un servizio Linux di base ma essenziale e sfruttare la sua capacità di centralizzare i log ti consente di trarne il massimo.


Linux
  1. Come gestire i file di registro utilizzando Logrotate in Linux

  2. Come utilizzare OpenSSH per connettersi al tuo server Linux

  3. Come utilizzare il comando trova di Linux per trovare i file

  4. Come ruotare i file di registro Apache in Linux

  5. Rsyslog:come inviare file di registro al server remoto in CentOS/RHEL 6,7

Come creare e utilizzare file di scambio su Linux

Come visualizzare i file di registro Nginx su Linux

Come visualizzare i file di registro di Apache su Linux

Come usare i comandi FTP di Linux

Come creare un controller di dominio su Linux per AD

Come creare una configurazione Rsyslog di registrazione centralizzata