問題タブ [fluent-bit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
logging - Fluent Bit Input プラグインの「転送」は、複数行のログ処理をサポートしていますか?
Fluent Bit forward プラグインを使用して Java スタック トレース メッセージを 1 つのログ イベントにマージする際の問題を解決しようとしています。元のログは区切り記号付きのプレーン テキスト (JSON 形式ではない) として書き込まれるため、複数行の問題に対処する必要があります。ログは Docker 化されたサービスによって提供されます。例:
ファイルシステムからいくつかのサービスのログを読み取るテールプラグインを使用すると、メッセージがうまくマージされます
パーサー.conf:
流暢-bit.conf
次に、イベントをレコードの標準出力に正しくマージします
しかし、同様の構成でフォワードプラグインを使用して同じ結果を得ようとすると、各スタックトレース行が個別のレコードとして取得されます
流暢-bit.conf
標準出力
forward プラグインは複数行をサポートしていないと思いますが、この構成のエラー/警告は報告されません。
問題は、流暢なビット入力転送プラグインを構成して、複数行のログ メッセージを 1 つのレコードにマージする方法です。 この問題の解決策はありますか?
elasticsearch - kubernetes フィルターと elasticsearch 出力で fluent-bit を使用しているときにログ エントリが失われる
ES では一部のログが欠落していることが時々わかりますが、Kubernetes では確認できます。
私が見つけたログの問題だけは、流暢なビットのログで次のような kubernetes パーサーの問題を指摘しています。
[2020/11/22 09:53:18] [debug] [filter:kubernetes:kubernetes.1] could not merge JSON log as requested
「Merge_Log」オプションを「オフ」に設定して kubernetes フィルターを構成すると、問題が解決したように見えます (少なくとも fluent-bit ログの「警告/エラー」はなくなります)。しかし、もちろん、「メッセージ」自体以外のフィールド/値を実際に持つなどの大きな機能を失います。
これ以外に、fluent-bit または elasticsearch のいずれにもエラー/警告メッセージはありません。それが私の主な容疑者です。ログ (info の log_level) には以下が含まれます。
log_level の「デバッグ」を有効にする1. [2020/11/22 09:53:18] [debug] [filter:kubernetes:kubernetes.1] could not merge JSON log as requested
と、すべての「merge_log」がオフのときにチャンク エラーをフラッシュするためのフィアルがないため、チャンクがフラッシュに失敗する理由であると思われるこれらが表示されます。
私の現在の流暢なビット設定は次のようなものです:
Merge_Log は「kube-apiserver. 」に対してオフであり、これまでのところ正常に動作していますが、最終的な動作は望ましくありません (フィールド マッピングは行われていません)。「kube.」の Merge_Log がオンになっており、期待どおりに ES でフィールドを生成しています...しかし、ログが失われています。
このエラーにつながる kubernetes パーサーで関連するコードを見つけましたが、このメッセージにつながるエラーを「修正」する方法を理解する知識が不足していますhttps://github.com/fluent/fluent-bit/blob/master /plugins/filter_kubernetes/kubernetes.c#L162
これは本当にイライラし始めており、なぜこれが起こるのか、またはそれを修正する方法がわかりません. 何か助けてください。