Ein Remote-Syslog in eine eigene Datei einfügen

1076
Reti

Ich habe einen Tomato-Router und kann seine Protokolle an einen externen Server senden. syslogist die naheliegende Wahl dafür. Also habe ich die Remote-Protokollierung auf meinem Linux-Server syslogd( syslogd -r) aktiviert, und ich kann alle Protokolle sehen /var/log/syslog. Was ich tun möchte, ist, alles, was von der IP meines Routers kommt (10.0.0.1), in eine eigene Datei umzuleiten /var/log/tomato, um zu vermeiden, dass mein Syslog mit externen Protokollen verschmutzt wird.

Ich kann keine Beispiele finden, dass jemand dies tut. Meine einzige Lösung ist, um ein Skript zu erhalten zusammen, dass jede Linie abstreift in /var/log/syslogmit 10.0.0.1drin und setzt die Linie in /var/log/tomatound hat das Skript als Cron - Job ausführen, aber das scheint unnötig chaotisch.

Es muss einen besseren Weg geben.

Bearbeiten:

Wenn nicht jemand weiß, dass es eine Lösung gibt, bin ich zu 95% sicher, dass syslogdies nicht unterstützt wird, nachdem Sie die Manpage ausführlicher gelesen haben. Ich muss also zu syslog-ngeinem verrückten Skript wechseln, das mit cron läuft.

2

2 Antworten auf die Frage

1
jfmessier

Wir verwenden syslog-ng in meinem Büro. In der Tat können Sie die Ausgabe von syslog basierend auf allen möglichen Kriterien in verschiedene Ausgabedateien aufteilen. In syslog-ng definieren Sie grundsätzlich die Quellen, die Kriterien und das Ziel getrennt. Anschließend erstellen Sie die Regel, mit der verschiedene Komponenten miteinander verklebt werden, sodass eine tatsächliche Regel von syslog-ng ausgeführt wird.

Was ich sehe, scheint syslog-ng der Standard zu sein. Wir verwenden auch einen PHP-basierten Syslog-Reader, der über das Web mit Apache arbeitet. Sie können dann diese Syslogs lesen. Verwenden Sie Ihre eigenen Kriterien, um den Protokollinhalt auf eine Weise zu überprüfen, die möglicherweise einfacher ist als der berühmte Befehl "tail -f". Dies wird als PHPlogcon bezeichnet. Google den Namen und Sie sollten ihn leicht finden.

1
damir

Verwenden Sie iptables, um den Verkehr von der Router-IP an einen anderen Port Ihres Linux-Hosts umzuleiten.

Führen Sie auf diesem anderen Port (dh 5514) eine andere Instanz des Syslog-Servers aus und schreiben Sie . in eine Datei Ihrer Wahl.