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 = ["https://127.0.0.1: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 https://127.0.0.1:9999/***/***
)时,我们正在运行Telegraf服务并告诉它在哪里找到正确的输入和输出配置文件(在我们的案例中,分别是系统和InfluxDB)。配置文件本身位于平台中(在BoltDB中),这就是为什么配置说明方便地给出了文件的地址。我们还可以通过点击Telegraf配置文件的名称(在Telegraf标签页中)查看实际的toml文件,甚至可以下载它以供安全保存或重复使用。
如果我们开始在收集数据后更改我们的Telegraf配置,我们必须重新启动Telegraf服务才能使更改生效。如果您记不起如何运行它,您可以访问Telegraf插件列表再次查看说明。
开始变得很酷
Telegraf仍然与InfluxData 2.0平台分开,这样我们就可以在所有我们发现有用的地方继续使用它;毕竟,拥有一个可以依赖的开源代理是件好事。在2.0中的目标是我们确保最大化开发者的满意度,这意味着将Telegraf与平台集成应该像1,2,3一样简单。
<figcaption>看到了吗?</figcaption>