14

12factorからの次の投稿を読んで、皆さんがこれをどのように処理しているかを確認したいという質問を思いつきました.

基本的に、アプリは stdout/stderr に直接書き込む必要があります。これらのストリームを fluentd (rsyslog/syslog にバインドされていない) に直接リダイレクトする方法はありますか? fluentd についての認識が深まるにつれ、複数のアプリ/プラットフォームからのログを集約するための優れたツールになると思います。

これの主な理由は、アプリがクロスプラットフォームの場合、rsyslog/syslog が利用できない可能性があり、私が理解しているように、ロギング フレームワーク (動作するために必要な構成が必要) を使用すると、12factor に違反することになります。

ありがとう!

4

2 に答える 2

3

fluentd を使用するには、プロセス マネージャーを構成する必要があります。

「12 要素アプリ プロセスは [...] オペレーティング システムのプロセス マネージャー (Upstart、クラウド プラットフォーム上の分散プロセス マネージャー、開発中の Foreman のようなツールなど) に依存して、出力ストリームを管理する必要があります [...] ."

基本的には、ログのリダイレクトはプロセス マネージャーの問題であるという考えです。たとえば、Upstartは通常、 Unix Domain Socketに書き込むオプション () を持つloggerに依存しています。次に、同じソケットを入力ストリームとして使用するように fluentd を構成できます。-u

Fluentd は多くの入力ストリーム(データ ソースと呼ばれます) をサポートしており、使用しているほぼすべての環境とプロセス マネージャーにソリューションを提供するはずです (より完全なソリューションを提供するには、これらを知る必要があります)。

于 2015-07-29T22:52:42.960 に答える
3

これはまだ実験的なプログラムですが、stdout-hook を見ることができます。

このプログラムは、子プロセスから STDOUT 出力を読み取り、レコードを Fluentd に投稿します。

于 2015-02-26T22:13:48.263 に答える