Kann ich Protokolldateien zu Syslog umleiten?

7

Ich habe einen Node.js Server, der von der überwacht wird für immer . Forever generiert drei Protokolldateien: den Server STDOUT, STDERR und das Protokoll von forever selbst.

$ forever -l forever.log -o out.log -e err.log app.js

Aber anstatt mich in Protokolldateien anzumelden, möchte ich alles in Syslog protokollieren, optional mit dem Hinzufügen eines Präfixes, damit meine Syslog-Verarbeitungsserver alles sortieren können.

In StackOverflow schlug jemand vor, dass dies mit einem Bash-Wrapper erledigt werden kann, und schlug vor, hier zu fragen. Wie würde ich diese Protokolle in Syslog anstatt in Dateien bekommen?

Sander Marechal
quelle

Antworten:

13

Haben Sie versucht, Logger mit Prozessersetzung zu verwenden?

$ forever -a >(logger -t forever) -o >(logger -t app.js) -e >(logger -t app.js) app.js

Sie können mit dem logger -pSchalter herumspielen, um Protokollstufen, Warnungen, Informationen, Fehler usw. sowie andere Protokollierungsschalter festzulegen. Das forever -lmusste geändert werden forever -a.

Ich habe dies mit einigen der für immer installierten Beispieldateien versucht und es hat funktioniert. Jede Distribution kann standardmäßig in einer anderen Protokolldatei protokollieren. Sie müssen mit Logger-Switches experimentieren.

bsd
quelle
Danke, das klingt perfekt! Ich werde es versuchen, wenn ich am Montag wieder bei der Arbeit bin.
Sander Marechal
@SanderMarechal Experimentieren Sie loggerselbst, finden Sie heraus, welche Schalter Ihnen helfen, und ändern Sie das Beispiel entsprechend. Viel Glück.
BSD
1
Dies mag in der Vergangenheit funktioniert haben, aber jetzt lässt die Option -a kein Argument zu. dh der Befehl muss "für immer -a -o> (logger -t app.js) -e> (logger -t app.js) app.js" sein
Radiospiel
4

Mit können rsyslogSie das Textdatei-Eingabemodul verwenden, um Protokolldateien zu überwachen und zu verarbeiten.

http://www.rsyslog.com/using-the-text-file-input-module/

Skomski
quelle
2
Übrigens kann das syslog-nganscheinend auch.
sr_
1
Dies ist wahr, aber die Protokollrotation ist auf diese Weise aufwendiger, da die Anwendung die Dateideskriptoren weiterhin offen hält, um sie zu protokollieren. Möglicherweise muss die App neu gestartet werden, wenn die Protokolle gedreht werden. Dies ist kein Problem, wenn Sie sich direkt über den Logger bei syslog anmelden.
Mark Stosberg