Wie kann ich Syslog-Protokolle von einem vernetzten System empfangen?


23

Ich möchte Ubuntu so konfigurieren, dass Protokolle von einem DD-WRT-Router empfangen werden. Der Konfigurationsbildschirm des Routers enthält den folgenden Abschnitt:

DD-WRT-Systemprotokoll

und seine Protokollierungsdokumentation lautet:

Wenn Sie Protokolle an ein Remote-System senden möchten, geben Sie die IP-Adresse des Computers ein, auf dem auch ein Syslog-Dienstprogramm ausgeführt wird (es benötigt einen offenen Netzwerk-Socket, um vom Router gesendete Protokolle zu akzeptieren).

Ich habe noch nie (wissentlich) Syslog verwendet. Was muss ich in Ubuntu tun, damit diese Protokolle empfangen werden können?


Mein Motorola Surfboard Extreme SBG901 scheint ähnliche Einstellungen wie Ihr DD-WRT zu haben. Ich dachte nur, ich würde dieses Schlüsselwort für andere hinzufügen, die nach diesem Q / A googeln.
Kochfelder

Antworten:


23

Auf dem Host, der die Protokolle empfängt, muss ein Syslog-Daemon ausgeführt werden, der so konfiguriert ist, dass er auf Remote-Protokolle wartet. Es gibt eine Reihe von Syslog-Implementierungen in Ubuntu, diese werden jedoch rsyslognormalerweise empfohlen und sollten standardmäßig installiert werden. Ich kann anhand der Dokumentation in dem von Ihnen geposteten Link nicht feststellen, ob DD-WRT Protokolle über TCP oder UDP sendet. Daher sind möglicherweise einige Experimente erforderlich, um genau die richtigen Einstellungen zu finden, wenn Sie die Anzahl der Netzwerkzugriffe verringern möchten Ports auf Ihrem Host.

Es gibt zwei Möglichkeiten, dies zu aktivieren: Die erste ist einfacher, erfordert jedoch möglicherweise eine erneute Integration, wenn das System aktualisiert wird. Die zweite ist etwas komplizierter und kann zu verwirrenden Ergebnissen führen, wenn die Syslog-Konfiguration im Rahmen eines Updates erheblich geändert wird. Ich würde die zweite wählen, aber Ihre Präferenz kann variieren.

Die erste besteht darin /etc/rsyslogd.conf, die Initiale #in den folgenden Zeilen zu bearbeiten und zu entfernen :

# $ ModLoad imudp
# $ UDPServerRun 514

oder

# $ ModLoad imtcp
# $ InputTCPServerRun 514

Die zweite besteht darin, eine neue Datei mit dem folgenden Inhalt zu erstellen, möglicherweise mit dem Namen local-enable-tcp.confin /etc/rsyslog.d/:

# TCP-Syslog-Empfang aktivieren
$ ModLoad imtcp
$ InputTCPServerRun 514

Wenn Sie den Ansatz für separate Dateien verwenden möchten und UDP benötigen, ändern Sie den Inhalt so, dass er der obigen UDP-Zeilengruppe entspricht. Der spezifische Dateiname ist nicht wichtig, es wird jedoch empfohlen, ihn mit "local-" zu starten, da dieser Namespace für die lokale Administratorkonfiguration reserviert ist und mit ".conf" enden muss, da nur solche Dateien automatisch in den Dateinamen aufgenommen werden rsyslog Konfiguration.

Wenn Sie es vorziehen, eine andere Syslog-Implementierung zu verwenden, überprüfen Sie die Konfiguration und Dokumentation für diese Implementierung: Es ist wahrscheinlich, dass der Syslog-Dämon standardmäßig so konfiguriert ist, dass er das Netzwerk nicht überwacht. Die Beispielkonfiguration zur Aktivierung dieses allgemeinen Falls sollte jedoch klar dokumentiert sein.


1
Es sollte eine gute Idee sein, den Namen der Datei mit einer zweistelligen Nummer zu beginnen, die die Reihenfolge in Bezug auf andere vorhandene .conf-Dateien festlegt.
Enzotib

Das kann kompliziert sein. Es gibt keinen Grund, warum ein Paketname nicht mit einer zweistelligen Zahl beginnen kann, und .d / $ {package} - .conf sind alle für die Pakete reserviert (obwohl es unwahrscheinlich ist, dass bei 72-local-myconf.conf Konflikte auftreten ). Zweitens ist es wichtig, Konfigurationsdateien so zu schreiben, dass die Reihenfolge nicht kritisch ist. Beispielsweise würde eine Konfigurationsdatei, die von 0access.conf aus dem hypothetischen "0access" -Paket bereitgestellt wird, vor den meisten Konfigurationsdateien angewendet, die mit einer zweistelligen Zahl beginnen.
Emmet Hikory

1
Möglicherweise müssen Sie auch den Eigentümer Ihrer Protokolldatei ändern: sudo chown syslog:adm /var/log/syslogoder wie auch immer Sie Ihre Protokolldatei benannt haben.
Kochfelder

6

Eine andere Option ist die Verwendung von syslog-ng, die einfach zu verwenden und soweit einsatzbereit ist!

sudo apt-get install syslog-ng

Nach der Installation haben wir eine conf-Datei in /etc/syslog-ng/syslog-ng.conf. Bearbeiten Sie also einfach diese .conf mit unseren Parametern, aber machen Sie vorher eine Sicherungskopie der Standard-Konfigurationsdatei, die später nützlich sein kann, wenn Sie möchten einige Parameter optimieren

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

Jetzt erstelle eine neue Konfigurationsdatei und bearbeite sie!

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

Fügen Sie einfach diese grundlegende Konfiguration ein, um ebenfalls zu arbeiten:

# 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);  };

Einfach wie Sie sehen können. Pass auf!


-2

Grundsätzlich führen Sie auf Ihrem Server einen Daemon (syslogd) aus, in den der dd-wrt-Router Protokolle schreibt.

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


5
Vermeiden Sie es, die Adresse eines alten Führers zu posten, ohne zu prüfen, ob deren Anweisungen noch gültig sind. Die im Handbuch genannten Dateien existieren nicht mehr. Ubuntu benutzt rsyslog.
Enzotib

@enzotib - Obwohl ich zustimme, dass es an Qualität mangelt und dass Links vermieden werden sollten, stellte sich heraus, dass diese Antwort genau das lieferte, was ich brauchte, um dieselbe Aufgabe auf einem Ubuntu 8.04-Server zu erfüllen. Hier gibt es drei Antworten, alle für drei verschiedene Varianten von Syslog , die noch in Produktionssystemen verwendet werden . Diese Antwort war nützlich. Es bekommt eine +1 von mir.
Ghoti

Das ist wahr, aber dies ist im Grunde nur eine Antwort auf einen Link.
Duncan X Simpson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.