InfluxDB 2.0 中的 Telegraf 配置
作者:Katy Farmer / 产品, 用例, 开发者
2019年9月6日
导航至
欢迎来到未来的时序世界 InfluxData 2.0。我们从解释基础知识开始 2.0 之旅。今天,我们将讨论当您将 Telegraf 配置为数据收集器时,幕后会发生什么。
收集数据是创建有用信息的第一步,这使其成为我们任何系统中至关重要的一步。
<figcaption> 在我看来,所有重要的步骤都应该有彩虹连接器</figcaption>
配置 Telegraf
当我们点击“配置数据收集器”时,我们(通过 JavaScript 的魔力)被传送到“加载数据”页面,在那里我们可以配置 Telegraf。
有一个专门针对 Telegraf 的选项卡,因为很多人依赖多个 Telegraf 配置来支持他们的数据收集。从这里我们选择“创建配置”,这将为我们提供一些预构建的要监控的服务选项。我喜欢从“系统”开始,因为它易于设置并验证 Telegraf 是否正常工作。我们还可以指定我们希望 Telegraf 写入哪个存储桶,因此如果需要,我们可以为这些系统指标创建一个存储桶。如果您没有看到您想要监控的列表,您仍然可以使用 Telegraf 来收集这些指标,但您将无法使用配置器来完成它。 我们在此处描述了如何手动配置 Telegraf 以与 InfluxDB 2.0 一起使用。
在下一步中,命名您的配置。同样,我通常会选择一些描述性的名称,例如“katy 的系统”或“我的宝贝”。如果这还不够,您还可以添加描述。
现在我们已经完成了导航,我们进入 Telegraf 配置的精彩部分。在最后一步,我们有 3 个任务要完成。
- 安装 Telegraf (必须至少为 Telegraf 1.9.2)。Telegraf 仍然独立于 InfluxData 2.0 平台,以便它可以轻松地安装和部署在我们想要监控的所有位置。需要 Telegraf 安装方面的帮助吗?请查看本指南。
- 配置 API 令牌。InfluxDB 2.0 使用基于令牌的身份验证,因此我们需要设置一个环境变量来存储我们的令牌。存储此令牌使 Telegraf 有权访问 InfluxDB API,以便我们可以将我们正在收集的数据写入 InfluxDB。我使用 bash,所以我将我的令牌保存在我的
.bashrc
文件中。 - 我们离数据收集只剩下一个任务了。我们需要使用正确的配置文件启动 Telegraf 服务。还记得我们选择监控“系统”吗?这决定了我们的 Telegraf 配置文件的外观
-
- 在初始 Telegraf 设置中,我们可以测试我们的连接以确保数据正在写入我们的存储桶。我喜欢这个功能,因为我喜欢确认事情已正确完成,无论是在我的终端还是平台上。
-
如果您从此列表移开并在以后需要它,请不要担心——我们始终可以通过单击 Telegraf 选项卡中配置旁边的链接再次查看设置说明。
深入探讨
我喜欢直观的用户界面,Influx 的前端团队在引导我们配置 Telegraf 方面做得非常出色。那么幕后发生了什么?为了让 Telegraf 开始向 InfluxDB 发送指标,它需要两件事:一个输入插件和一个输出插件。当我们从 UI 配置 Telegraf 时,它会自动启用 InfluxDB 输出插件,因此我们不必指定输出(如果需要,我们始终可以在以后更改输出插件)。
配置文件的输出部分应如下所示
[[outputs.influxdb_v2]]
## The URLs of the InfluxDB cluster nodes.
##
## Multiple URLs can be specified for a single cluster, only ONE of the
## urls will be written to each interval.
## urls exp: http://127.0.0.1:9999
urls = ["http://localhost:9999"]
## Token for authentication.
token = "$INFLUX_TOKEN"
虽然令牌在技术上不是输出的一部分,但我们仍然需要它来实现成功的 Telegraf 连接。
当我们选择“系统”作为要监控的环境时,为我们生成了一个 Telegraf 配置文件,其中启用了一组输入插件。这包括 cpu
, disk
, diskio
, mem
, net
, processes
, swap
和 system
。所有这些都有助于构建它们所运行系统的完整图像。这组输入插件不需要配置,这意味着它们会立即开始收集指标。
您想知道 Telegraf 配置的输入部分是什么样的吗?我相信你想。
## Organization is the name of the organization you wish to write to; must exist.
organization = "DevRel-Katy"
## Destination bucket to write into.
bucket = "test"
[[inputs.cpu]]
## Whether to report per-cpu stats or not
percpu = true
## Whether to report total system cpu stats or not
totalcpu = true
## If true, collect raw CPU time metrics.
collect_cpu_time = false
## If true, compute and report the sum of all non-idle CPU states.
report_active = false
[[inputs.disk]]
## By default stats will be gathered for all mount points.
## Set mount_points will restrict the stats to only the specified mount points.
# mount_points = ["/"]
## Ignore mount points by filesystem type.
ignore_fs = ["tmpfs", "devtmpfs", "devfs", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
[[inputs.mem]]
[[inputs.net]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]
例如,如果我们选择了 Redis,我们将不得不提供一些信息,然后它才能生成一个可用的配置文件。如果我们单击插件列表,我们可以添加任何服务器信息或我们需要启动并运行的身份验证。
<figcaption> 自 1987 年以来在本地运行</figcaption>
当我们运行步骤 3 中的命令 (telegraf --config http://localhost:9999/***/***
) 时,我们正在运行 Telegraf 服务并告诉它在哪里找到正确的输入和输出的配置文件(在我们的例子中,分别是系统和 InfluxDB)。配置文件本身位于平台内部(在 BoltDB 中),这就是为什么配置说明方便地为我们提供了文件的地址。我们还可以通过单击 Telegraf 配置的名称(在 Telegraf 选项卡中)来查看实际的 toml 文件,甚至可以下载它以进行安全保管或重用。
如果我们在开始收集数据后更改了我们的 Telegraf 配置,我们必须重新启动 Telegraf 服务才能使更改生效。如果您不记得运行它的说明,您可以访问Telegraf 插件列表再次查看说明。
精彩时刻
Telegraf 仍然独立于 InfluxData 2.0 平台,以便我们可以在我们认为有用的所有地方继续使用它;毕竟,拥有一个可以依赖的开源代理是很不错的。2.0 的目标是确保我们最大限度地提高开发人员的幸福感,这意味着将 Telegraf 与平台集成应该像 1、2、3 一样简单。
<figcaption> 看到我做了什么吗?</figcaption>