ファイル入力、json フィルター、elasticsearch 出力を使用して、Logstash で大きなメッセージを解析しようとしています。99% の場合、これで問題なく動作しますが、ログ メッセージの 1 つが大きすぎると、最初のメッセージが 2 つの部分的な無効な JSON ストリームに分割されるため、JSON 解析エラーが発生します。このようなメッセージのサイズは、約 40,000 文字以上です。バッファのサイズに関する情報があるかどうか、または上限を超えないようにする必要がある最大の長さがあるかどうかを確認しましたが、うまくいきませんでした。私が見つけた唯一の答えは、udp入力に関連し、バッファサイズを変更できることです。
Logstash には各イベント メッセージのサイズに制限がありますか? https://github.com/elastic/logstash/issues/1505
これもこの質問に似ている可能性がありますが、返信や提案はありませんでした: Logstash Json filter behaing unexpectedly for large nested JSONs
回避策として、メッセージを複数のメッセージに分割したかったのですが、すべての情報を Elasticsearch の同じレコードに入れる必要があるため、これを行うことができません。Logstash から Update API を呼び出す方法があるとは思えません。さらに、ほとんどのデータは配列内にあるため、スクリプトを使用して Elasticsearch レコードの配列を更新することはできますが ( Elasticsearch upserting および array への追加)、Logstash からは実行できません。
データ レコードは次のようになります。
{ "variable1":"value1",
......,
"variable30": "value30",
"attachements": [ {5500 charcters of JSON},
{5500 charcters of JSON},
{5500 charcters of JSON}..
...
{8th dictionary of JSON}]
}
Logstash でこれらの大きな JSON メッセージを処理する方法、またはそれらを分割して (Logstash を使用して) 同じ Elasticsearch レコードにする方法を知っている人はいますか?
必要な情報があれば喜んで追加します。