多输入(input)多输出(output)验证

#作者:程宏斌

文章目录

前言

需要设计并执行一组测试用例,这些测试用例将包括以子文件形式组织的多输入(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 1
    Parsers_File parsers.conf
    HTTP_Server  On
    HTTP_Listen  0.0.0.0
    HTTP_PORT    3194
[INPUT]
    Name         tail
    Tag          regex-input1
    DB           ./db/regex-fluent.db
    Read_from_Head true
    Path  /vdata/logtest/input1/*.log
    Path_Key  pod_log_path
[FILTER]
    Name                  multiline
    Match                 *
    multiline.key_content log
    multiline.parser      multiline-regex-go
    emitter_mem_buf_limit 2048M
[FILTER]
    Name modify
    Match *
    Add paas_log_belong         user
    Add paas_log_type           middleware
    Add paas_collection_type    userfile
    Add paas_account_id         123456789
    Add paas_region_id          lftst
    Add paas_product_id         ccc
    Add paas_instance_name      test10
    Add paas_host_ip            127.0.0.1
    Add paas_manager_ip         127.0.0.1
    Add pod_namespace           default
    Add pod_name                test-0
    Add pod_container_name      test 
[OUTPUT]
    Name file
    Match regex-input1
    Path /var/log/pods/logtest

input.conf

复制代码
[INPUT]
    Name         tail
    Tag          regex-input2
    DB           ./db/regex-fluent.db
    Read_from_Head true
    Path  /vdata/logtest/input2/*.log
    Path_Key  pod_log_path

output.conf

复制代码
[OUTPUT]
    Name file
    Match regex-input2
    Path /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 1
    Parsers_File parsers.conf
    HTTP_Server  On
    HTTP_Listen  0.0.0.0
    HTTP_PORT    3302
[INPUT]
    Name         tail
    Tag          regex-input1
    DB           ./db/regex-fluent.db
    Read_from_Head true
    Path  /vdata/logtest/input1/*.log
    Path_Key  pod_log_path
    multiline.parser      multiline-regex-go
[FILTER]
    Name modify
    Match *
    Add paas_log_belong         user
    Add paas_log_type           middleware
    Add paas_collection_type    userfile
    Add paas_account_id         123456789
    Add paas_region_id          lftst
    Add paas_product_id         ccc
    Add paas_instance_name      test10
    Add paas_host_ip            127.0.0.1
    Add paas_manager_ip         127.0.0.1
    Add pod_namespace           default
    Add pod_name                test-0
    Add pod_container_name      test 
[OUTPUT]
    Name file
    Match regex-input1
    Path /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 时,并未表现出显著的性能提升。这表明,增加多组配置可以简化配置的阅读性,但并不能显著提高日志采集的效率。

相关推荐
爱喝水的鱼丶2 分钟前
SAP-ABAP:ALV字段布局定制全攻略——快速适配业务端个性化展示需求
运维·性能优化·sap·abap·经验交流·alv报表
承渊政道2 分钟前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(从退化问题到信息高速公路:ResNet残差网络实战拆解)
网络·人工智能·pytorch·深度学习·resnet·chatglm·卷积
Lhappy嘻嘻9 分钟前
网络初识|基础入门:局域网广域网、IP 端口、TCP/IP 五层模型与封装解封装全过程
java·开发语言·网络·笔记·网络协议·tcp/ip
KaMeidebaby17 分钟前
卡梅德生物技术快报|兔单克隆抗体:噬菌体 Fab 免疫文库搭建实操:兔单克隆抗体重组构建完整参数
前端·网络·数据库·人工智能·算法
qetfw18 分钟前
CentOS 7 配置 firewalld 防火墙
linux·运维·centos
留不住的何止是时间25 分钟前
关于docker构建镜像build指令的注意事项
运维·docker·容器
Dovis(誓平步青云)1 小时前
《Linux CPU频率为何忽高忽低:cpufreq、idle状态与性能抖动教程》
linux·运维·服务器·spring boot·后端·生成对抗网络
小此方2 小时前
Re:Linux系统篇(四十三)信号篇·一:谁在敲进程的门?一篇带你了解信号概念与产生机制
linux·运维·驱动开发
Championship.23.249 小时前
Linux 3.0 锁机制与故障排查详解
linux·运维·服务器
风123456789~11 小时前
【Linux专栏】ls 排除某个文件
linux·运维·服务器