Fluent Bit与New Relic集成:全栈可观测性数据平台构建

Fluent Bit与New Relic集成:全栈可观测性数据平台构建

【免费下载链接】fluent-bit Fast and Lightweight Logs and Metrics processor for Linux, BSD, OSX and Windows 【免费下载链接】fluent-bit 项目地址: https://gitcode.com/GitHub_Trending/fl/fluent-bit

你是否还在为分散的日志数据难以集中分析而困扰?是否希望将应用性能指标与业务日志关联,实现真正的全栈可观测性?本文将详细介绍如何通过Fluent Bit与New Relic构建统一的数据平台,帮助你一站式解决日志收集、处理和分析难题。读完本文后,你将掌握从数据采集到可视化监控的完整流程,包括配置优化、数据解析和异常告警的实现方法。

集成架构概览

Fluent Bit作为轻量级日志处理器,能够高效采集系统、容器和应用日志,通过输出插件将数据转发至New Relic平台。New Relic提供强大的数据分析和可视化能力,支持实时监控和智能告警。两者结合可构建从边缘到云端的全链路可观测性解决方案。

Fluent Bit生态系统

核心组件包括:

  • 数据采集层:Fluent Bit输入插件(如in_tailin_docker
  • 数据处理层:过滤插件(如filter_kubernetesfilter_parser
  • 数据输出层:New Relic输出插件(out_newrelic)
  • 数据存储与分析层:New Relic平台

环境准备与安装

前置条件

  • Fluent Bit 1.9.0+(推荐最新稳定版)
  • New Relic账号及Ingest License Key
  • 目标服务器网络连通性(需允许443端口出站连接)

Fluent Bit安装

源码编译(Linux)
git clone https://gitcode.com/GitHub_Trending/fl/fluent-bit.git
cd fluent-bit
mkdir build && cd build
cmake -DFLB_OUT_NEWRELIC=On ..
make -j$(nproc)
sudo make install
包管理器安装
# Ubuntu/Debian
sudo apt-get install fluent-bit

# CentOS/RHEL
sudo yum install fluent-bit

安装完成后,可通过以下命令验证版本:

fluent-bit --version

配置详解

核心配置文件结构

Fluent Bit配置采用INI格式,主要包含以下部分:

  • Service:全局设置
  • Input:数据采集配置
  • Filter:数据处理规则
  • Output:目标端配置

典型配置文件路径:/etc/fluent-bit/fluent-bit.conf 或项目内的conf/fluent-bit.conf

New Relic输出配置

在配置文件中添加New Relic输出插件配置:

[OUTPUT]
    Name          newrelic
    Match         *
    api.key       YOUR_LICENSE_KEY
    host          log-api.newrelic.com
    port          443
    tls           On
    tls.verify    On
    compression   gzip
    # 可选:自定义事件类型
    event_type    FluentBitLogs

关键参数说明

  • api.key:New Relic Ingest License Key(必填)
  • compression:启用gzip压缩减少网络传输量
  • event_type:自定义事件类型,便于在New Relic中筛选

日志解析配置

使用conf/parsers.conf定义日志格式,例如解析JSON格式日志:

[PARSER]
    Name   json
    Format json
    Time_Key time
    Time_Format %Y-%m-%dT%H:%M:%S.%L
    Time_Keep   On

在输入配置中引用解析器:

[INPUT]
    Name              tail
    Path              /var/log/application/*.log
    Parser            json
    Tag               app.logs
    Refresh_Interval  10

实战案例:Kubernetes集群监控

容器日志采集

配置Fluent Bit采集Kubernetes容器日志:

[INPUT]
    Name              tail
    Tag               kube.*
    Path              /var/log/containers/*.log
    Parser            docker
    DB                /var/log/flb_kube.db
    Mem_Buf_Limit     5MB
    Skip_Long_Lines   On
    Refresh_Interval  10

[FILTER]
    Name                kubernetes
    Match               kube.*
    Kube_URL            https://kubernetes.default.svc:443
    Kube_CA_File        /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    Kube_Token_File     /var/run/secrets/kubernetes.io/serviceaccount/token
    Merge_Log           On
    K8S-Logging.Parser  On
    K8S-Logging.Exclude Off

数据转发配置

[OUTPUT]
    Name          newrelic
    Match         kube.*
    api.key       YOUR_LICENSE_KEY
    host          log-api.newrelic.com
    port          443
    tls           On
    # 添加Kubernetes元数据标签
    extra_labels  cluster=production,env=prod

验证与监控

服务启动与状态检查

# 前台运行(调试模式)
fluent-bit -c /etc/fluent-bit/fluent-bit.conf -v

# 后台运行
sudo systemctl start fluent-bit
sudo systemctl status fluent-bit

New Relic数据验证

登录New Relic控制台,在Logs页面查看接入的数据:

  1. 访问New Relic Logs
  2. 使用查询语句过滤Fluent Bit数据:eventType = 'FluentBitLogs'

New Relic日志查询示例

常见问题排查

数据未到达New Relic
  1. 检查网络连通性:telnet log-api.newrelic.com 443
  2. 查看Fluent Bit日志:journalctl -u fluent-bit
  3. 验证License Key有效性:在New Relic账号设置中确认密钥状态
日志格式错误

性能优化建议

资源调优

  • 内存限制:通过Mem_Buf_Limit控制每个输入插件的内存使用
  • CPU优化:调整Workers参数启用多线程处理
[Service]
    Workers  2

数据处理优化

[FILTER]
    Name   record_modifier
    Match  *
    Remove key password,token

高可用配置

  • 数据缓冲:启用文件缓冲防止数据丢失
[INPUT]
    Name              tail
    ...
    Storage.type      filesystem
    Storage.path      /var/lib/fluent-bit/buffer
  • 输出重试机制:配置New Relic插件重试策略
[OUTPUT]
    Name          newrelic
    ...
    Retry_Limit   False
    Retry_Wait    5

总结与展望

通过Fluent Bit与New Relic的集成,我们构建了高效、可靠的可观测性数据平台。从边缘设备到云原生环境,该方案能够满足不同规模的监控需求。未来可进一步探索:

  • 结合New Relic APM实现分布式追踪
  • 使用Fluent Bit metrics输入插件监控系统指标
  • 构建自定义仪表盘和告警规则

希望本文能帮助你更好地利用开源工具构建可观测性体系。如果觉得有价值,请点赞、收藏并关注后续分享!

相关资源

【免费下载链接】fluent-bit Fast and Lightweight Logs and Metrics processor for Linux, BSD, OSX and Windows 【免费下载链接】fluent-bit 项目地址: https://gitcode.com/GitHub_Trending/fl/fluent-bit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值