TIG Stack 和 InfluxDB Core 入门
作者:Anais Dotis-Georgiou / 开发者
2025年1月24日
导航至
注意:本博客为 InfluxDB 3 Core 和 Enterprise Alpha 版本编写。请查看文档,因为当前 Beta 版本可能略有更改。
时间序列数据无处不在——从物联网传感器和服务器指标到金融交易和用户行为。为了高效地收集、存储和分析这些数据,您需要专门为此目的构建的工具。这就是 TIG Stack 的用武之地:Telegraf 用于数据收集,InfluxDB 用于存储和分析,Grafana 用于可视化。这些工具共同为实时分析、可观测性和监控提供强大的解决方案。
TIG Stack 的核心是 InfluxDB,一个专门设计用于收集、处理、转换和存储时间序列数据的数据库平台。InfluxDB 广泛用于需要实时监控、极速查询和交互式仪表板的应用——无论您是跟踪物联网传感器数据、监控服务器性能、分析金融市场还是确保网络可靠性。
最新版本 InfluxDB Core 在性能、可用性和成本效益方面引入了重大改进。这些增强功能使处理大量时间序列数据和交付实时洞察变得比以往任何时候都更容易。
在这篇博文中,您将学习如何开始使用 TIG Stack。我们将引导您完成
- 使用 Telegraf 将数据写入 InfluxDB 3 Core
- 使用 Grafana 可视化您的数据
要求
您需要满足以下要求才能自行运行本教程。请安装以下软件(或使用 Grafana Cloud)
- Telegraf
- InfluxDB Core
- Grafana:例如,如果您在 MacOS 上使用 homebrew,您可以使用
brew install grafana
和brew services start grafana
。Grafana 现在将在 http://localhost:3000/ 上可用。
启动并运行 InfluxDB
安装 InfluxDB 3 Core 后,运行以下命令启动服务器
influxdb3 serve --host-id=local01 --object-store file --data-dir ~/.influxdb3
接下来使用以下命令生成令牌
influxdb3 create token
您应该看到以下输出
Token: apiv3_xxx
Hashed Token: zzz
Start the server with `influxdb3 serve --bearer-token zzz`
HTTP requests require the following header: "Authorization: Bearer apiv3_xxx"
This will grant you access to every HTTP endpoint or deny it otherwise.
现在,我们可以将纯文本令牌与 Telegraf 一起使用。“哈希令牌”是纯文本令牌的加密表示。通过将哈希令牌传递给服务器,您可以避免在命令行、日志或配置文件中暴露纯文本令牌。因此,当客户端在 HTTP 请求中发送纯文本承载令牌时,服务器会对接收到的令牌进行哈希处理,并将哈希结果与您在启动时提供的哈希令牌进行比较。这确保服务器可以安全地验证纯文本令牌,而无需直接存储或处理它。
使用 Telegraf 将数据写入 InfluxDB v3 OSS
首先,您需要在您的机器上安装 Telegraf。查看要求、下载和安装指南以开始使用。一旦 Telegraf 安装在您的机器上,我们就可以创建一个配置来将数据写入我们的 InfluxDB 实例。但是,在深入研究配置之前,让我们简要讨论一下 Telegraf 是什么以及为什么它的配置至关重要。
Telegraf 是一个轻量级的开源服务器代理,用于从各种来源收集、处理和发送指标和事件到像 InfluxDB 这样的数据存储。它通过使用插件来工作,这些插件定义了要收集的数据(输入)、如何处理数据(处理器)以及将数据发送到哪里(输出)。
Telegraf 配置文件在此过程中起着核心作用。它指定要使用的插件,设置诸如身份验证凭据之类的参数,并定义数据流。如果没有正确的配置文件,Telegraf 将不知道
- 从哪里收集数据(例如,数据库、MQTT、系统指标)
- 如何处理或转换数据(可选)
- 将数据发送到哪里(在本例中,发送到 InfluxDB v3 OSS)。
安装 Telegraf 后,您可以使用以下配置将数据写入您的 InfluxDB 实例。此示例设置 Telegraf 以使用 CPU 输入插件和 InfluxDB v2 输出插件(v2 和 v3 的 HTTP API 端点相同)将系统 CPU 指标发送到 InfluxDB v3。以下是我们的配置的样子
# Global configuration
[agent]
interval = "10s" # Collection interval
flush_interval = "10s" # Data flush interval
# Input Plugin: CPU Metrics
[[inputs.cpu]]
percpu = true # Collect per-CPU metrics
totalcpu = true # Collect total CPU metrics
collect_cpu_time = false # Do not collect CPU time metrics
report_active = true # Report active CPU percentage
# Output Plugin: InfluxDB v2
[[outputs.influxdb_v2]]
urls = ["http://127.0.0.1:8181"]
token = "your plain Token apiv3_xxx"
organization = ""
bucket = "cpu"
注意:您不需要为 InfluxDB Core 提供组织 ID
现在,我们可以使用以下命令运行 Telegraf
telegraf --config pwd/telegraf.conf --debug
输出帮助我们验证我们正在使用以下 Telegraf 日志成功写入数据
2025-01-09T23:34:02Z I! Loading config: ./telegraf.conf
2025-01-09T23:34:02Z I! Starting Telegraf 1.26.2
2025-01-09T23:34:02Z I! Available plugins: 235 inputs, 9 aggregators, 27 processors, 22 parsers, 57 outputs, 2 secret-stores
2025-01-09T23:34:02Z I! Loaded inputs: cpu
2025-01-09T23:34:02Z I! Loaded aggregators:
2025-01-09T23:34:02Z I! Loaded processors:
2025-01-09T23:34:02Z I! Loaded secretstores:
2025-01-09T23:34:02Z I! Loaded outputs: influxdb_v2
2025-01-09T23:34:02Z I! Tags enabled: host=MacBook-Pro-4.local
2025-01-09T23:34:02Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"MacBook-Pro-4.local", Flush Interval:10s
2025-01-09T23:34:02Z D! [agent] Initializing plugins
2025-01-09T23:34:02Z D! [agent] Connecting outputs
2025-01-09T23:34:02Z D! [agent] Attempting connection to [outputs.influxdb_v2]
2025-01-09T23:34:02Z D! [agent] Successfully connected to outputs.influxdb_v2
2025-01-09T23:34:02Z D! [agent] Starting service inputs
2025-01-09T23:34:12Z D! [outputs.influxdb_v2] Buffer fullness: 0 / 10000 metrics
2025-01-09T23:34:23Z D! [outputs.influxdb_v2] Wrote batch of 13 metrics in 792.507791ms
使用 InfluxDB CLI 验证成功写入
如果您愿意,您现在可以使用以下 CLI 命令验证我们是否正在成功地将 CPU 指标写入 InfluxDB v3 OSS
influxdb3 query --database=cpu "SELECT * FROM cpu LIMIT 10"
配置 Grafana 数据源
要在 Grafana 中将 InfluxDB Core 配置为新数据源,请访问 http://localhost:3000/
并导航到 “连接” > “数据源” > “新建” > 搜索并选择 “InfluxDB”。选择 SQL 作为语言类型。然后在配置中提供以下凭据
- URL: http://localhost:8181
- 数据库: cpu
- 不安全连接: 开启
点击 “保存 & 测试” 以验证您可以连接到 InfluxDB Core。 现在,您可以像通常在 Grafana 中那样创建可视化并将其添加到您的仪表板中,方法是导航到 “仪表板” > “+创建仪表板” > “+添加可视化” > “选择数据源” > “influxdb”。并使用构建器为您生成 SQL 查询。例如,构建器生成了以下代码和可视化
SELECT "cpu", "usage_user", "time" FROM "cpu" WHERE "time" >= $__timeFrom AND "time" <= $__timeTo AND "cpu" = 'cpu0'

总结
我希望这篇博文能帮助您开始使用 InfluxDB Core、Telegraf 和 Grafana。如果您对 InfluxDB Core 有任何反馈,我们很乐意在 Discord 上的 #influxdb3_core 频道中听到。在 InfluxDB Core 的 Alpha 发布期间,您的经验和意见对我们非常重要。在此处开始使用 InfluxDB v3 Cloud。如果您需要帮助,请通过我们的社区网站或 Slack 频道与我们联系。如果您也在进行 InfluxDB 的数据处理项目,我很乐意听到您的消息!