1

Flumeで遊び始めたばかりです。複数行のログ エントリを 1 つのイベントとして処理する方法について質問があります。エラー状態時のスタック トレースと同様です。たとえば、以下を行ごとに 1 つのイベントではなく、1 つのイベントとして扱います。

2013-04-05 05:00:41,280 エラー (ClientRequestPool-PooledExecutionEngine-Id#4) [com.ms.fw.rexs.gwy.api.service.AbstractAutosysJob] com.ms で 228794 java.lang.NullPointerException のジョブが失敗しました.fw.rexs.core.impl.service.job.ReviewNotificationJobService.createReviewNotificationMessageParameters(ReviewNotificationJobService.java:138) ....

ソースを spooldir タイプに設定しました。

ありがとうスマン

4

2 に答える 2

0

スプールソースで使用される行デシリアライザーを拡張することを検討する必要があります.1つの単純な(しかし潜在的に欠陥のある)アプローチは、改行で区切りますが、前の行に一定数のスペースがプレフィックスとして付けられた行を結合します.

実際、これに関する Jira の問題が既にパッチで提供されています。

于 2016-11-01T09:49:19.527 に答える
0

ドキュメントに記載されているように、spooldir ソースは、入力データ内の改行で区切られた文字列ごとに新しいイベントを作成します。spooldir source のコードに基づいて独自のシンク ( http://flume.apache.org/FlumeDeveloperGuide.html#sinkを参照) を作成することにより、この動作を変更できます。いくつかの基準に基づいてメッセージの開始行と終了行を検出できる解析アルゴリズムを実装する必要があります。

また、受信したメッセージ全体を 1 つのイベントとして扱う Syslog UDP や Avro などのソースもあるため、そのまま使用できます。

于 2013-04-17T09:48:55.373 に答える