Durch das Lesen des folgenden Beitrags von 12factor habe ich eine Frage gestellt, die ich gerne überprüfen würde, wie ihr damit umgeht.
Grundsätzlich sollte eine App direkt in stdout / stderr schreiben. Gibt es überhaupt eine Möglichkeit, diese Streams direkt an fluentd umzuleiten (nicht an rsyslog / syslog gebunden)? Da mir fluentd mehr bewusst wird, glaube ich, dass es ein großartiges Tool für die Protokollaggregation von mehreren Apps / Plattformen wäre.
Der Hauptgrund dafür ist, dass rsyslog / syslog, wenn die App plattformübergreifend ist, möglicherweise nicht verfügbar ist, und wenn ich das verstehe, wäre die Verwendung von Logging-Frameworks (die die erforderliche Konfiguration für sie benötigen) eine Verletzung von der 12-Faktor.
Danke!
Sie müssen Ihren Prozessmanager für die Verwendung von fluentd konfigurieren.
Grundsätzlich besteht die Idee darin, dass die Protokollumleitung ein Anliegen des Prozessmanagers ist. Upstart zum Beispiel basiert normalerweise auf logger , der eine Option ( -u
) hat, um auf einen Unix-Domain-Socket
Fluentd unterstützt viele Eingabestreams (sie nennen sie Datenquellen), die eine Lösung für nahezu jede Umgebung bieten sollten &Ampere; Prozessmanager, den Sie möglicherweise verwenden (was wir wissen müssen, um eine vollständigere Lösung bereitzustellen).
Dies ist immer noch ein experimentelles Programm, aber Sie können auf stdout-hook schauen.
Dieses Programm liest die STDOUT-Ausgabe vom Kindprozess und sendet die Datensätze an Fluentd.