如何通过自定义 Telegraf Agent 减小 Telegraf 二进制文件大小

导航至

Telegraf 对于您的设备来说是否太大了?一个二进制文件中插件太多让您感到沮丧吗?

让我向您介绍 Telegraf 自定义构建器 – 用于减小 Telegraf 总体内存和磁盘占用空间的新工具。在本博客中,我们将讨论“什么、为什么、何时”以及如何使用新的自定义构建器。

How-to-Reduce-Telegraf-Binary-Size-with-a-Customized-Telegraf-Agent-OG

什么、为什么以及何时?

什么?

Telegraf 自定义构建器是用 Go 编写的工具,可以在 Telegraf repo 的 tools 目录中找到。自定义构建器允许您选择要使用哪些插件来构建 Telegraf 二进制文件。它将您的 Telegraf 配置文件作为输入,扫描配置文件以查找定义的插件文件,并构建一个新的二进制文件,其中仅包含这些插件(更多信息请参见操作指南部分)。

为什么?

Telegraf 二进制文件在过去几年中大幅增长。下图显示了从 1.14.0 版本到 1.24.0 版本,Linux amd64 构建上的 Telegraf 二进制文件的增长情况。随着这种增长,许多用户要求提供构建更精简的 Telegraf 二进制文件的方法,该二进制文件仅包含他们想要在其轻量级 IoT 设备上下载的插件。

Telegraf size by Minor Release

尽管剥离 Telegraf 二进制文件并不是一个新概念,但对于 Telegraf 社区来说,这从来都不是一件容易的事。它需要了解源代码和特定的构建配置文件。Telegraf 自定义构建器旨在为所有用户简化此过程。此自定义构建器还为 Telegraf 在资源受限的设备(甚至是一些支持运行 Telegraf 二进制文件的嵌入式设备/控制器)上更高效地使用提供了空间。Telegraf 自定义构建器还有助于 Telegraf 未来的可扩展性。自然地,社区贡献的插件越多,Telegraf 的大小就越臃肿(随着时间推移添加更多功能的本质)。此工具提供了构建与您的用例相关的二进制文件的范围。

何时?

Telegraf 自定义构建器是在您的解决方案设计的正确情况和阶段中使用的强大工具。例如,当您已经确定要使用的插件时,使用自定义构建器是有意义的。如果您对从源代码构建 Telegraf 二进制文件感到满意,那么自定义构建器也是有意义的。

开始之前

使用您想要使用的插件创建您的 Telegraf 配置。这可以本地或远程存储。在本博客中,我们将使用 Telegraf 配置。

如何使用它

在本节中,让我们使用 Telegraf 自定义构建器为这个演示构建 Telegraf:MQTT 紧急发电机模拟器

  1. 开始之前 确保您的 Go 版本是最新的。在发布时,此工具需要 Go 版本 1.18.0+。 使用您想要使用的插件创建您的 Telegraf 配置。这可以本地或远程存储。在本博客中,我们将使用来自 MQTT 紧急发电机模拟器的 Telegraf 配置
  2. 克隆 Telegraf repo
    git clone https://github.com/influxdata/telegraf.git
  3. 构建自定义构建器
    我们现在需要构建自定义构建器。为此,请在 Telegraf 存储库的顶层目录中打开一个终端,然后输入命令
    make build_tools
  4. 将自定义构建器指向您的 Telegraf 配置(包含您想要构建的插件)
    根据您构建/存储 Telegraf 配置的方式,您有以下几个选项
    • 单个 Telegraf 配置
      ./tools/custom_builder/custom_builder --config /etc/telegraf.conf
    • 单个 Telegraf 配置 + Telegraf 配置目录
      /tools/custom_builder/custom_builder --config     /etc/telegraf.conf --config-dir /etc/telegraf/telegraf.d
    • 远程 Telegraf 配置
      ./tools/custom_builder/custom_builder --config http://myserver/telegraf.conf
  5. 对于我们的紧急发电机演示,我们可以在此处找到 Telegraf 配置。因此,让我们尝试使用远程功能
    ./tools/custom_builder/custom_builder --config https://raw.githubusercontent.com/InfluxCommunity/InfluxDB-Roadshow-Training/master/telegraf/telegraf.conf
    这将运行自定义构建器的两个阶段(配置和构建),从而创建您的自定义 Telegraf 二进制文件。
  6. 查看自定义 Telegraf 二进制文件
    您现在应该能够在 Telegraf 存储库的顶层找到您新的更小的 Telegraf 二进制文件。
    下表给出了 MacOS 上总体二进制文件大小的比较
    MQTT 紧急发电机自定义构建 完整二进制文件
    MQTT 输入插件、InfluxDB_V2 输出插件、JSON_V2 解析器 所有插件
    17.6 MB 207.9 MB
  7. 从自定义 Telegraf 添加或删除插件 如果您想从自定义 Telegraf 构建中添加或删除插件,您只需编辑您的配置并重新运行 `./tools/custom_builder/custom_builder --config path/to/config.conf` 命令。

结论

随着 Telegraf 2.0 的开发,我们正在努力提供一个 Telegraf 二进制文件,该文件在所有设备(包括资源受限的设备)上都能提供出色的功能。Telegraf 自定义构建器为您提供了灵活性,通过仅引入部署阶段所需的插件来节省重要的内存和存储空间。我们很高兴听到您对新工具的反馈。请访问 InfluxData Slack社区论坛。让我们在那里与团队的其他成员继续讨论!