#作者:程宏斌
文章目錄
- 前言
- Flb 1.9.4 INCLUDE配置測試
- 測試方案
- 測試配置文件
- 測試命令
- Flb 3.0.2 INCLUDE配置測試
- 測試方案
- 測試配置文件
- 啟動命令
- 結論
- 結論一:
- 結論二:
前言
需要設計并執行一組測試用例,這些測試用例將包括以子文件形式組織的多輸入(input)和多輸出(output)的場景。
Flb 1.9.4 INCLUDE配置測試
測試方案
這里設定了兩組輸入和輸出:一組從/vdata/logtest/input1/*收集日志,輸出到/var/log/pods/logtest/regex-input1目錄;另一組從/vdata/logtest/input2/*收集日志,發送到/var/log/pods/logtest/regex-input2。
測試配置文件
fluent-bit.conf
@INCLUDE 9.2.2input.conf
@INCLUDE 9.2.2output.conf
[SERVICE]Flush 1Parsers_File parsers.confHTTP_Server OnHTTP_Listen 0.0.0.0HTTP_PORT 3194
[INPUT]Name tailTag regex-input1DB ./db/regex-fluent.dbRead_from_Head truePath /vdata/logtest/input1/*.logPath_Key pod_log_path
[FILTER]Name multilineMatch *multiline.key_content logmultiline.parser multiline-regex-goemitter_mem_buf_limit 2048M
[FILTER]Name modifyMatch *Add paas_log_belong userAdd paas_log_type middlewareAdd paas_collection_type userfileAdd paas_account_id 123456789Add paas_region_id lftstAdd paas_product_id cccAdd paas_instance_name test10Add paas_host_ip 127.0.0.1Add paas_manager_ip 127.0.0.1Add pod_namespace defaultAdd pod_name test-0Add pod_container_name test
[OUTPUT]Name fileMatch regex-input1Path /var/log/pods/logtest
input.conf
[INPUT]Name tailTag regex-input2DB ./db/regex-fluent.dbRead_from_Head truePath /vdata/logtest/input2/*.logPath_Key pod_log_path
output.conf
[OUTPUT]Name fileMatch regex-input2Path /var/log/pods/logtest
測試命令
mkdir -p /vdata/logtest/input1 /vdata/logtest/input2
touch /vdata/logtest/input1/error.log /vdata/logtest/input2/error.log
./bin/fluent-bit-1.9.4 -c etc/9.2.2fluent-bit.conf &>./logs/fluent-bit.log &
#此處根據多個input修改腳本,讓日志文件同時輸出兩份到不同的目錄
timeout 1200 bash 9create_test_log.sh 40 &
Flb 3.0.2 INCLUDE配置測試
測試方案
這里設定了兩組輸入和輸出:一組從/var/log/pods/logtest/input1/.log收集日志,輸出到/home/logtest目錄;另一組從/var/log/pods/logtest/input2/.log收集日志,發送到Kafka。
測試配置文件
fluent-bit.conf
這里使用上一章節的INCLUDE配置文件,因為在3.0.2版本和1.9.4版本中,multiline處理參數有所不同。
@INCLUDE 9.2.2input.conf
@INCLUDE 9.2.2output.conf
[SERVICE]Flush 1Parsers_File parsers.confHTTP_Server OnHTTP_Listen 0.0.0.0HTTP_PORT 3302
[INPUT]Name tailTag regex-input1DB ./db/regex-fluent.dbRead_from_Head truePath /vdata/logtest/input1/*.logPath_Key pod_log_pathmultiline.parser multiline-regex-go
[FILTER]Name modifyMatch *Add paas_log_belong userAdd paas_log_type middlewareAdd paas_collection_type userfileAdd paas_account_id 123456789Add paas_region_id lftstAdd paas_product_id cccAdd paas_instance_name test10Add paas_host_ip 127.0.0.1Add paas_manager_ip 127.0.0.1Add pod_namespace defaultAdd pod_name test-0Add pod_container_name test
[OUTPUT]Name fileMatch regex-input1Path /var/log/pods/logtest
啟動命令
mkdir -p /vdata/logtest/input1 /vdata/logtest/input2
touch /vdata/logtest/input1/error.log /vdata/logtest/input2/error.log
./bin/fluent-bit-3.0.2 -c etc/9.3.2fluent-bit.conf &>./logs/fluent-bit.log &
#此處根據多個input修改腳本,讓日志文件同時輸出兩份到不同的目錄
timeout 1200 bash 9create_test_log.sh 40 &
結論
監控數據匯總:
結論一:
fluent-bit能夠根據 INCLUDE 配置的規則,將來自不同輸入源的日志條目發送到不同的輸出目標,實現靈活的日志處理和管理。
結論二:
使用多組 input 和 output 并沒有明顯提升 Fluent Bit 的采集性能。從測試結果可以看出,雖然不同版本的 Fluent Bit 在單獨配置 input 和 output 時表現出一定的性能差異,但在同時配置多組 input 和 output 時,并未表現出顯著的性能提升。這表明,增加多組配置可以簡化配置的閱讀性,但并不能顯著提高日志采集的效率。