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

导航至

如果Telegraf对您的设备来说太大?一个二进制文件中过多的插件让您感到沮丧吗?

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

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

是什么、为什么和何时?

是什么?

Telegraf自定义构建器是一个用Go编写的工具,位于Telegraf存储库的tools目录中。自定义构建器允许您选择要用于构建Telegraf二进制文件的插件。它将您的Telegraf配置文件作为输入,扫描配置文件以查找定义的插件文件,并构建一个新的二进制文件,仅包含这些插件(有关此内容的更多信息请参阅如何操作部分)。

为什么?

Telegraf的二进制文件在过去几年中显著增长。下方的图表显示了Linux amd64构建的Telegraf二进制文件从1.14.0版本到1.24.0版本的增长情况。随着这种增长,许多用户请求能够构建一个更精简的Telegraf二进制文件,仅包含他们想要下载到轻量级物联网设备上的插件。

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仓库
    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社区 论坛。让我们在那里与其他团队成员继续讨论!