文档文档

使用 Kapacitor 与 InfluxDB OSS

Kapacitor 是一个数据处理框架,可以轻松创建警报、运行 ETL 作业和检测异常。Kapacitor 使用 InfluxDB 1.x 兼容性 APIInfluxDB CloudInfluxDB OSS 2.7 交互,因此您可以继续使用 Kapacitor,而无需将 TICKscripts 库迁移到 InfluxDB 任务。

支持流任务

InfluxDB Cloud 和 InfluxDB OSS 2.7 没有订阅 API,不支持 Kapacitor 流任务,但您可以通过直接将数据写入 Kapacitor 来继续使用流任务。有关更多信息,请参阅下面的 内容

在本页中

配置 Kapacitor 连接到 InfluxDB

要将 Kapacitor 连接到 InfluxDB Cloud 或 InfluxDB OSS 2.7,请更新您的 Kapacitor 配置文件[[influxdb]] 部分

指定您的 InfluxDB URL

[[influxdb]].urls 配置选项中提供您的 InfluxDB URL。有关更多信息,请参阅 InfluxDB Cloud 区域InfluxDB OSS URL

[[influxdb]]
  # ...
  urls = ["http://localhost:8086"]

提供 InfluxDB 身份验证凭据

InfluxDB Cloud 和 InfluxDB OSS 2.7 需要身份验证。在您的 [[influxdb]].username[[influxdb]].password 配置选项中提供以下凭据

  • 用户名: InfluxDB 用户名
  • 密码: InfluxDB API 令牌
[[influxdb]]
  # ...
  username = "influxdb-username"
  password = "influxdb-token"

Kapacitor 受 InfluxDB 令牌权限限制的约束。要查询或写入 InfluxDB bucket,InfluxDB 令牌必须具有目标 bucket 的读取和/或写入权限。有关令牌权限的信息,请参阅 创建令牌

禁用 InfluxDB 订阅

InfluxDB Cloud 和 InfluxDB OSS 2.7 没有订阅 API。将 [[influxdb]].disable-subscriptions 设置为 true 以禁用 InfluxDB 订阅。

[[influxdb]]
  # ...
  disable-subscriptions = true

使用 Kapacitor 批处理任务

Kapacitor 批处理任务使用 1.x 兼容性 API 的 query 端点,无需更改即可与 InfluxDB Cloud 和 InfluxDB OSS 一起使用。有关在 Kapacitor 任务中写回 InfluxDB 的信息,请参阅下面的 写回 InfluxDB

使用 Kapacitor 流任务

InfluxDB Cloud 和 OSS 2.7 没有订阅 API,也不直接支持 Kapacitor 流任务。要使用 Kapacitor 流任务,请使用 Kapacitor write API 直接将数据写入 Kapacitor。我们建议使用 Telegraf InfluxDB 输出插件 将数据写入 InfluxDB Cloud 或 OSS 和 Kapacitor。

使用 Telegraf InfluxDB 输出插件写入数据

要使用 InfluxDB 输出插件将数据写入 InfluxDB 和 Kapacitor,请完成以下步骤

  1. 安装 Telegraf.
  2. 创建 DBRP 映射.
  3. Telegraf InfluxDB 输出插件 配置文件中,指定以下选项,替换 databaseretention_policyusernamepassword 以匹配您的 DBRP 映射,并将 skip_database_creation 设置为 true
# Write to Kapacitor
[[outputs.influxdb]]
  urls = ["http://localhost:9092"]
  database = "example-db"
  retention_policy = "example-rp"

# Write to InfluxDB Cloud or OSS
[[outputs.influxdb]]
  urls = ["http://localhost:8086"]
  database = "example-db"
  retention_policy = "example-rp"
  username = "influxdb-username"
  password = "influxdb-token"
  skip_database_creation = true

写回 InfluxDB

如果使用 Kapacitor InfluxDBOut 节点将数据写入 InfluxDB 2.7,InfluxDB 会将指定的数据库和保留策略映射到相应的 bucket。您还可以手动将数据库/保留策略组合 (DBRP) 映射到 bucket。有关更多信息,请参阅 DBRP 映射

以下示例 TICKscript 将写入 InfluxDB Cloud 或 InfluxDB OSS 2.7 中的 my-db/my-rp bucket。

batch
  |query('SELECT errors / total AS error_percent from requests')
  // Write the transformed data to InfluxDB
  |influxDBOut()
    .database('my-db')
    .retentionPolicy('my-rp')
    .measurement('errors')
    .tag('kapacitor', 'true')
    .tag('version', '0.2')

此页对您有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像当前一样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一款开源、高速的近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、只读副本、增强的安全性以及数据压缩,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看