Fluentdバッファのテスト(3)-Bufferテストの進捗と結果
こんにちは!
私はカルビ餃子が好きな開発者の任太彬です.
今日はFluentdバッファをテストする最後の部分Bufferテストです
まず、2つのFluentdサーバを構築します.
2つのサーバの名前を区切るとわかりやすいのがFluentd 1とFluentd 2で説明
Fluentd 1は、Webサーバからログを受信し、バッファを使用してデータを収集して送信します.
fluentd 2の場合、fluentd 1出力バッファから収集されたデータの一部です.
Fluentd 2は出力のみを考慮し、バッファが完全かどうかをテストします.
Fluentd 1とFluentd 2のconfファイルを作成しましょう.
gin Webサーバをローカルで実行し、ドッキングステーションを使用して各コンテナを作成します.
それでは今からテストを始めましょう
最初に行うテストは、Fluentd 1がログを収集してFluentd 2にデータを送信するときに、Fluentd 2が何らかの理由で終了した場合、Fluentd 1のデータはどのようになりますか.
上の図は、サーバが開くまでFluentd 1がデータを収集していることを示しています.データが14~18秒に及ぶ場合、サーバが転送中に突然中断したため、データが失われる可能性があります.
2つ目のテストは、ginによってFluentd 1にデータが集中してFluentd 2に送信されたときに、Fluentd 1が閉じている場合、データを再実行してもデータが保持されているかどうかです.まず1枚目の写真では、Fluentd 1は、データが入ってから停止していることを示す写真です.
37秒で停止したため、データはFluentd 2に送信されませんでした.次にFluentd 1を再実行すると、Fluent 1のバッファ内のデータがFluentd 2に入ります.琥珀色のマークに関連するデータが表示されます.
この2つのテストでは、flush intervalが大きな影響を受けていることがわかります.ファイルバッファを使用しているためかもしれませんが、より多くのエンクロージャを追加するには、さまざまなオプションを使用してください.
この文章を読んで、间违いや好奇心のあるところがあれば、伝言を残してください.ありがとうございます.
https://github.com/tae2089/golang/tree/main/fluentdgin
私はカルビ餃子が好きな開発者の任太彬です.
今日はFluentdバッファをテストする最後の部分Bufferテストです
まず、2つのFluentdサーバを構築します.
2つのサーバの名前を区切るとわかりやすいのがFluentd 1とFluentd 2で説明
Fluentd 1は、Webサーバからログを受信し、バッファを使用してデータを収集して送信します.
fluentd 2の場合、fluentd 1出力バッファから収集されたデータの一部です.
Fluentd 2は出力のみを考慮し、バッファが完全かどうかをテストします.
Fluentd 1とFluentd 2のconfファイルを作成しましょう.
#vi fluentd1.conf
<source>
@type forward
port 24224
</source>
<match *.log>
@type forward
send_timeout 60s
recover_wait 10s
<buffer>
@type "file"
flush_interval 5s
path "/home/ubuntu/test_buffer"
retry_wait 5s
retry_type periodic
</buffer>
<server>
name "ubuntu"
host "192.168.25.56"
port 24223
</server>
</match>
#vi fluentd2.conf
<source>
@type forward
port 24224
bind "0.0.0.0"
</source>
<match *.log>
@type stdout
</match>
これらのファイルを使用してテストしましょう.gin Webサーバをローカルで実行し、ドッキングステーションを使用して各コンテナを作成します.
docker run -it --name fluentd1 -p 24224:24224 tae2089/fluentd:1.3
docker run -it --name fluentd2 -p 24223:24224 tae2089/fluentd:1.3
テストが始まる前に、k 6というload test toolを使用して複数のhttp通信を行い、より多くのデータを要求しました:)ページのリフレッシュもjmeterを使用して行うことができます.
それでは今からテストを始めましょう
最初に行うテストは、Fluentd 1がログを収集してFluentd 2にデータを送信するときに、Fluentd 2が何らかの理由で終了した場合、Fluentd 1のデータはどのようになりますか.
上の図は、サーバが開くまでFluentd 1がデータを収集していることを示しています.データが14~18秒に及ぶ場合、サーバが転送中に突然中断したため、データが失われる可能性があります.
2つ目のテストは、ginによってFluentd 1にデータが集中してFluentd 2に送信されたときに、Fluentd 1が閉じている場合、データを再実行してもデータが保持されているかどうかです.まず1枚目の写真では、Fluentd 1は、データが入ってから停止していることを示す写真です.
37秒で停止したため、データはFluentd 2に送信されませんでした.次にFluentd 1を再実行すると、Fluent 1のバッファ内のデータがFluentd 2に入ります.琥珀色のマークに関連するデータが表示されます.
この2つのテストでは、flush intervalが大きな影響を受けていることがわかります.ファイルバッファを使用しているためかもしれませんが、より多くのエンクロージャを追加するには、さまざまなオプションを使用してください.
この文章を読んで、间违いや好奇心のあるところがあれば、伝言を残してください.ありがとうございます.
https://github.com/tae2089/golang/tree/main/fluentdgin
Reference
この問題について(Fluentdバッファのテスト(3)-Bufferテストの進捗と結果), 我々は、より多くの情報をここで見つけました https://velog.io/@tae2089/Fluentd-버퍼-테스트-하기3-Buffer-테스트-진행-및-결과テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol