Come posso ricevere i log di syslog da un sistema in rete?


23

Vorrei configurare Ubuntu per ricevere i log da un router DD-WRT. La schermata di configurazione del router contiene la seguente sezione:

Registro di sistema DD-WRT

e la sua documentazione di registrazione recita:

Se si desidera inviare registri a un sistema remoto, immettere l'indirizzo IP di quella macchina che esegue anche un'utilità syslog (è necessario un socket di rete aperto per accettare i registri inviati dal router).

Non ho mai usato (consapevolmente) syslog prima. Cosa devo fare in Ubuntu per consentirgli di ricevere questi registri?


Il mio Motorola Surfboard Extreme SBG901 sembra avere impostazioni simili al tuo DD-WRT. Ho pensato di aggiungere quella parola chiave per gli altri googling per questo q / a.
Piani cottura

Risposte:


23

L'host che riceve i registri dovrà eseguire un demone syslog configurato per l'ascolto dei registri remoti. Esistono diverse implementazioni di syslog in Ubuntu, marsyslog genere è consigliato e dovrebbe essere installato di default. Non posso dire dalla documentazione nel link che hai pubblicato se DD-WRT sta inviando registri tramite TCP o UDP, quindi potrebbe essere necessario un po 'di sperimentazione per trovare esattamente le impostazioni corrette, se sei preoccupato di ridurre il numero di accessi alla rete porte sul tuo host.

Esistono due modi per abilitarlo: il primo è più semplice, ma può richiedere una reintegrazione quando il sistema viene aggiornato. Il secondo è leggermente più complicato e può causare risultati confusi se ci sono modifiche significative alla configurazione di syslog come parte di un aggiornamento. Vorrei scegliere il secondo, ma le tue preferenze possono variare.

Il primo è modificare /etc/rsyslogd.confe rimuovere l'iniziale #dalle seguenti righe:

# $ ModLoad imudp
# $ UDPServerRun 514

o

# $ ModLoad imtcp
# $ InputTCPServerRun 514

Il secondo è quello di creare un nuovo file, forse chiamato local-enable-tcp.confin /etc/rsyslog.d/, con il seguente contenuto:

# abilita la ricezione del syslog TCP
$ ModLoad imtcp
$ InputTCPServerRun 514

Se si desidera utilizzare l'approccio file separato e è necessario UDP, modificare i contenuti in modo che corrispondano alla stanza UDP sopra. Il nome file specifico non è importante, ma si consiglia di avviarlo con "local-" poiché questo spazio dei nomi è riservato alla configurazione dell'amministratore locale e deve terminare con ".conf", poiché solo i file che terminano in questo modo vengono automaticamente inclusi nella configurazione rsyslog.

Se preferisci utilizzare un'altra implementazione di syslog, controlla la configurazione e la documentazione per tale implementazione: è probabile che il demone syslog sia configurato per non ascoltare in rete per impostazione predefinita, ma una configurazione di esempio per abilitare questo caso comune dovrebbe essere chiaramente documentata.


1
Dovrebbe essere una buona idea iniziare il nome del file con un numero di due cifre, stabilire l'ordine rispetto ad altri file .conf esistenti.
enzotib,

Heh, beh, può essere complicato. Non c'è motivo per cui un nome di pacchetto non possa iniziare con un numero di due cifre e .d / $ {pacchetto} - .conf sono tutti riservati ai pacchetti (anche se è improbabile che si verifichino conflitti per es. 72-local-myconf.conf ). In secondo luogo, è importante provare a scrivere i file di configurazione in modo che l'ordine non sia critico. Ad esempio, un file di configurazione fornito da 0access.conf dall'ipotetico pacchetto "0access" verrebbe applicato prima della maggior parte dei file di configurazione che iniziano con un numero a due cifre.
Emmet Hikory,

1
Inoltre potrebbe essere necessario modificare la proprietà del file di registro: sudo chown syslog:adm /var/log/syslogo qualunque sia il nome del file di registro.
Piani cottura

6

Un'altra opzione è usare syslog-ng, facile da usare e finora pronto per l'uso!

sudo apt-get install syslog-ng

Dopo averlo installato, abbiamo un file conf in /etc/syslog-ng/syslog-ng.conf Quindi, basta modificare questo .conf con i nostri parametri, ma prima di ciò, fare un backup del file di configurazione predefinito, può essere utile in seguito se vuoi sintonizzare alcuni parametri

sudo mv /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak

Ora crea un nuovo file di configurazione e modificalo!

sudo touch /etc/syslog-ng/syslog-ng.conf
sudo nano /etc/syslog-ng/syslog-ng.conf

Quindi, basta incollare questa configurazione di base per funzionare anche:

# Listening to incoming UDP Syslog connections
source mysource { udp(); };

#Add the syslog targets:

destination dest { file("/var/log/Cisco$YEAR$MONTH$R_DAY.log"); };
#destination dest_other_server { udp("1.2.3.4" port(514)); };
#Create the filters that will be used to determine what to do with the received syslog message

#filter filter { ( host("2.3.4.5") and level(notice) and match("username=.*@domain\.local" value("MESSAGE") flags("utf8" "ignore-case")) ); };
filter myfilter { ( level(notice) ); };
#And putting it all together:

log { source(mysource); filter(myfilter); destination(dest);  };

Facile come puoi vedere. Stai attento!


-2

Fondamentalmente, esegui un demone (chiamato syslogd) sul tuo server per il router dd-wrt in cui pubblicare i log.

Tutorial- http://www.techiecorner.com/1479/how-to-setup-syslog-server-in-ubuntu/


5
Evita di pubblicare l'indirizzo di una vecchia guida, senza nemmeno controllare se le loro istruzioni sono ancora valide. I file indicati nella guida non esistono più. Ubuntu utilizza rsyslog.
enzotib,

@enzotib - Anche se sono d'accordo sul fatto che manchi di qualità e che i collegamenti debbano essere evitati, si scopre che questa risposta ha fornito esattamente ciò di cui avevo bisogno per ottenere lo stesso compito su un server Ubuntu 8.04. Ci sono tre risposte qui, tutte per tre diverse varianti di syslog che vengono ancora utilizzate nei sistemi di produzione . Questa risposta è stata utile. Riceve un +1 da me.
Ghoti,

Questo è vero, ma questo è fondamentalmente una risposta solo link.
Duncan X Simpson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.