使用 Kapacitor 与 InfluxDB OSS
Kapacitor 是一个数据处理框架,可以轻松创建警报、运行 ETL 作业和检测异常。Kapacitor 使用 InfluxDB 1.x 兼容性 API 与 InfluxDB Cloud 和 InfluxDB 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,请完成以下步骤
- 安装 Telegraf.
- 创建 DBRP 映射.
- 在 Telegraf InfluxDB 输出插件 配置文件中,指定以下选项,替换
database
、retention_policy
、username
和password
以匹配您的 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')
此页对您有帮助吗?
感谢您的反馈!