当前位置: 首页 > news >正文

Fluent Bit 日志合并正则表达式(下)

#作者:张桐瑞

文章目录

    • 7.使用 Fluent Bit 1.9.4 版本,仅配置 multiline -> modify 插件。
    • 8.使用 Fluent Bit 1.9.4 版本,仅配置 multiline -> modify 插件。
    • 9.使用 Fluent Bit 1.9.4 版本,仅配置 multiline -> modify 插件。
    • 10.使用 Fluent Bit 3.0.2 版本,仅配置 multiline 插件。
    • 11.使用 Fluent Bit 3.0.2 版本,仅配置 multiline 插件。
    • 12.使用 Fluent Bit 1.9.4 版本,仅配置 multiline 插件。
    • 13.使用 Fluent Bit 1.9.4 版本,仅配置 multiline 插件。
  • 测试结论
  • 测试结果

7.使用 Fluent Bit 1.9.4 版本,仅配置 multiline -> modify 插件。

在 FILTER.multiline 中使用正则表达式 new 进行压力测试。

测试配置文件

[SERVICE]Flush 1Parsers_File parsers.confHTTP_Server  OnHTTP_Listen  0.0.0.0HTTP_PORT    3194
[INPUT]Name         tailTag          regex-old-1.9.4DB           ./db/regex-old-1.9.4.dbRead_from_Head truePath  /var/log/pods/logtest/*.logPath_Key  pod_log_path
[FILTER]Name                  multilineMatch                 *multiline.key_content logmultiline.parser      multiline-regex-newemitter_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 *Path /vdata/logtest

启动命令

touch /var/log/pods/logtest/error.log
./bin/fluent-bit-1.9.4 -c etc/3.3.7-fluent.conf  &> logs/fluent-bit.log &

8.使用 Fluent Bit 1.9.4 版本,仅配置 multiline -> modify 插件。

在 INPUT.tail 中使用正则表达式 old 进行压力测试。
测试配置文件

[SERVICE]Flush 1Parsers_File parsers.confHTTP_Server  OnHTTP_Listen  0.0.0.0HTTP_PORT    3194
[INPUT]Name         tailTag          regex-old-1.9.4DB           ./db/regex-old-1.9.4.dbRead_from_Head truePath  /var/log/pods/logtest/*.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 *Path /vdata/logtest

启动命令

touch /var/log/pods/logtest/error.log
./bin/fluent-bit-1.9.4 -c etc/3.3.8-fluent.conf  &> logs/fluent-bit.log &

能识别到文件,但是不采集

[root@cdp-10-191-193-8 fluentbit]# cat logs/fluent-bit.log 
Fluent Bit v1.9.4
* Copyright (C) 2015-2022 The Fluent Bit Authors
* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
* https://fluentbit.io
​
[2024/07/08 17:13:06] [ info] [fluent bit] version=1.9.4, commit=08de43e474, pid=2373901
[2024/07/08 17:13:06] [ info] [storage] version=1.2.0, type=memory-only, sync=normal, checksum=disabled, max_chunks_up=128
[2024/07/08 17:13:06] [ info] [cmetrics] version=0.3.1
[2024/07/08 17:13:06] [ info] [input:tail:tail.0] multiline core started
[2024/07/08 17:13:06] [ info] [output:file:file.0] worker #0 started
[2024/07/08 17:13:06] [ info] [http_server] listen iface=0.0.0.0 tcp_port=3194
[2024/07/08 17:13:06] [ info] [sp] stream processor started
[2024/07/08 17:13:06] [ info] [input:tail:tail.0] inotify_fs_add(): inode=1074791925 watch_fd=1 name=/var/log/pods/logtest/error.log

采集的日志文件有变化

[root@cdp-10-191-193-8 fluentbit]# ls -l /var/log/pods/logtest/error.log
-rw-r--r-- 1 root root 11941696512  7月  8 17:20 /var/log/pods/logtest/error.log
[root@cdp-10-191-193-8 fluentbit]# ls -l /var/log/pods/logtest/error.log
-rw-r--r-- 1 root root 11983160736  7月  8 17:20 /var/log/pods/logtest/error.log
[root@cdp-10-191-193-8 fluentbit]# ls -l /var/log/pods/logtest/error.log
-rw-r--r-- 1 root root 12107553408  7月  8 17:20 /var/log/pods/logtest/error.log

output指定的目录无任何内容

[root@cdp-10-191-193-8 fluentbit]# ls -l /vdata/logtest/
总用量 0
[root@cdp-10-191-193-8 fluentbit]# 

也无法采集到监控

9.使用 Fluent Bit 1.9.4 版本,仅配置 multiline -> modify 插件。

在 INPUT.tail 中使用正则表达式 new 进行压力测试。
测试配置文件

[SERVICE]Flush 1Parsers_File parsers.confHTTP_Server  OnHTTP_Listen  0.0.0.0HTTP_PORT    3194
[INPUT]Name         tailTag          regex-old-1.9.4DB           ./db/regex-old-1.9.4.dbRead_from_Head truePath  /var/log/pods/logtest/*.logPath_Key  pod_log_pathmultiline.parser      multiline-regex-new
[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 *Path /vdata/logtest

启动命令

touch /var/log/pods/logtest/error.log
./bin/fluent-bit-1.9.4 -c etc/3.3.9-fluent.conf  &> logs/fluent-bit.log &

10.使用 Fluent Bit 3.0.2 版本,仅配置 multiline 插件。

在 INPUT.tail 中使用正则表达式 old 进行压力测试。
测试配置文件

[SERVICE]Flush 1Parsers_File parsers.confHTTP_Server  OnHTTP_Listen  0.0.0.0HTTP_PORT    3302
[INPUT]Name         tailTag          regex-fluentDB           ./db/regex-fluent.dbRead_from_Head truePath  /var/log/pods/logtest/*.logPath_Key  pod_log_pathmultiline.parser      multiline-regex-go
[OUTPUT]Name fileMatch *Path /vdata/logtest

启动命令

touch /var/log/pods/logtest/error.log
./bin/fluent-bit-3.0.2 -c etc/3.3.10-fluent.conf  &> logs/fluent-bit.log &

11.使用 Fluent Bit 3.0.2 版本,仅配置 multiline 插件。

在 INPUT.tail 中使用正则表达式 new 进行压力测试。
测试配置文件

[SERVICE]Flush 1Parsers_File parsers.confHTTP_Server  OnHTTP_Listen  0.0.0.0HTTP_PORT    3302
[INPUT]Name         tailTag          regex-fluentDB           ./db/regex-fluent.dbRead_from_Head truePath  /var/log/pods/logtest/*.logPath_Key  pod_log_pathmultiline.parser      multiline-regex-new
[OUTPUT]Name fileMatch *Path /vdata/logtest

启动命令

touch /var/log/pods/logtest/error.log
./bin/fluent-bit-3.0.2 -c etc/3.3.11-fluent.conf  &> logs/fluent-bit.log &

12.使用 Fluent Bit 1.9.4 版本,仅配置 multiline 插件。

在 FILTER.multilinel 中使用正则表达式 old 进行压力测试。
测试配置文件

[SERVICE]Flush 1Parsers_File parsers.confHTTP_Server  OnHTTP_Listen  0.0.0.0HTTP_PORT    3194
[INPUT]Name         tailTag          regex-old-1.9.4DB           ./db/regex-old-1.9.4.dbRead_from_Head truePath  /var/log/pods/logtest/*.logPath_Key  pod_log_path
[FILTER]Name                  multilineMatch                 *multiline.key_content logmultiline.parser      multiline-regex-goemitter_mem_buf_limit 2048M
[OUTPUT]Name fileMatch *Path /vdata/logtest

启动命令

touch /var/log/pods/logtest/error.log
./bin/fluent-bit-1.9.4 -c etc/3.3.12-fluent.conf  &> logs/fluent-bit.log &

13.使用 Fluent Bit 1.9.4 版本,仅配置 multiline 插件。

在 FILTER.multilinel 中使用正则表达式 new 进行压力测试。
测试配置文件

[SERVICE]Flush 1Parsers_File parsers.confHTTP_Server  OnHTTP_Listen  0.0.0.0HTTP_PORT    3194
[INPUT]Name         tailTag          regex-old-1.9.4DB           ./db/regex-old-1.9.4.dbRead_from_Head truePath  /var/log/pods/logtest/*.logPath_Key  pod_log_path
[FILTER]Name                  multilineMatch                 *multiline.key_content logmultiline.parser      multiline-regex-newemitter_mem_buf_limit 2048M
[OUTPUT]Name fileMatch *Path /vdata/logtest

启动命令

touch /var/log/pods/logtest/error.log
./bin/fluent-bit-1.9.4 -c etc/3.3.13-fluent.conf  &> logs/fluent-bit.log &

测试结论

本次实验所获得的所有数据,均通过实际测试得出,具体为在每秒内向采集文件写入40M的数据量:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试结果

在3.0.2版本的Fluent Bit中,无法在FILTER.multiline中使用正则表达式进行日志处理,导致无法采集到输入监控数据,并且输出性能也表现不佳。
在1.9.4版本的Fluent Bit中,不能在INPUT.tail中使用multiline进行日志处理,无法采集到输入和输出的监控数据,同时输出功能无法正常工作。

使用新版本的正则表达式 multiline-regex-new 在性能上稍逊于老版本的 multiline-regex-go,因为新版本的正则表达式修复了老版本在日志合并过程中出现的问题,确保了更准确的日志合并。

下降百分比计算方法如下:

下降百分比 = ((老版本速度 - 新版本速度) / 老版本速度) * 100%

1.9.4 版本使用 modify -> multiline 数据流下降:14%
((11.2M - 9.6M) / 11.2M) * 100% = 14%

1.9.4 版本使用 multiline -> modify 数据流下降:42.5%
((40M - 23M) / 40M) * 100% = 42.5%

3.0.2 版本使用 multiline -> modify 数据流下降:44%
((27.6M - 15.2M) / 27.6M) * 100% = 44%

http://www.dtcms.com/a/326904.html

相关文章:

  • 【Flowable】核心概念、核心表字段、关联关系以及生命周期
  • python3.10.6+flask+sqlite开发一个越南留学中国网站的流程与文件组织结构说明
  • GM3568JHF快速入门教程【二】FPGA+ARM异构开发板环境编译教程
  • 嵌入式硬件——ARM
  • Apache虚拟主机三种配置实战
  • 为什么灰度图用G(绿色)通道?
  • Gradient Descent for Logistic Regression|逻辑回归梯度下降
  • 物理服务器内存容量选择:大数据分析场景下的适配指南
  • 互连的带宽
  • 终端安全检测和防御技术
  • 2-1〔O҉S҉C҉P҉ ◈ 研记〕❘ 漏洞扫描▸理论基础与NSE脚本
  • Flutter path_provider的基本使用(读写文件)
  • Android12 Framework电话功能UI定制
  • Mac M1探索AnythingLLM+Ollama+知识库问答
  • Vue.js 样式绑定
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.1 安装 Node.js 与 npm(Windows/macOS/Linux 系统的安装步骤)
  • 派聪明RAG知识库----关于elasticsearch报错,重置密码的解决方案
  • node.js简介
  • 【论文阅读】RestorerID: Towards Tuning-Free Face Restoration with ID Preservation
  • ARM芯片架构之CoreSight SoC-400 组件介绍
  • 高效解耦:自定义内核链表实现指南(简化版)
  • LLM智能:从语言模型到通用智能体的技术跃迁
  • Java多线程基础总结
  • Python类装饰器:优雅解决描述符属性命名难题
  • 内存作假常见方案可行性分析
  • 【15-多类别分类和多标签分类】
  • SSE流式输出分层与解耦、用户自动结束语错误处理
  • 基于FPGA的热电偶测温数据采集系统,替代NI的产品(一)FPGA 测温研究现状
  • 【Python修仙编程】(20) 参悟参数真谛,林羽内力大增
  • 前端工程化:pinia