在 InfluxDB Cloud 中使用 Kapacitor
Kapacitor 是一个数据处理框架,可以轻松创建警报、运行 ETL 作业和检测异常。Kapacitor 使用 InfluxDB Cloud 和 InfluxDB OSS Cloud 的 InfluxDB 1.x 兼容 API 进行交互,因此您可以继续使用 Kapacitor,而无需将 TICKscripts 的库迁移到 InfluxDB 任务。
对流任务的支持
InfluxDB Cloud 和 InfluxDB OSS Cloud 没有订阅 API,并且不支持 Kapacitor 流任务,但是您可以通过直接将数据写入 Kapacitor 来继续使用流任务。有关更多信息,请参见 下方。
在此页面上
配置Kapacitor以连接到InfluxDB
要将Kapacitor连接到InfluxDB Cloud或InfluxDB OSS Cloud,请更新您的 [[influxdb]]
部分的Kapacitor配置文件:
指定您的 InfluxDB URL
在 [[influxdb]].urls 配置选项中提供您的 InfluxDB URL。有关更多信息,请参见 InfluxDB Cloud regions 或 InfluxDB OSS URLs。
[[influxdb]]
# ...
urls = ["http://localhost:8086"]
提供 InfluxDB 认证凭据
InfluxDB Cloud 和 InfluxDB OSS Cloud 需要认证。
在您的 [[influxdb]].username 和 [[influxdb]].password
配置选项中提供以下凭据:
- 用户名: InfluxDB 用户名
- 密码: InfluxDB API token
[[influxdb]]
# ...
username = "influxdb-username"
password = "influxdb-token"
Kapacitor 受限于 InfluxDB 令牌权限限制。 要查询或写入 InfluxDB 存储桶,InfluxDB 令牌必须对目标存储桶具有读取和/或 写入权限。 有关令牌权限的信息,请参阅 创建令牌。
禁用 InfluxDB 订阅
InfluxDB Cloud 和 InfluxDB OSS Cloud 没有订阅 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 Cloud 没有订阅 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 Cloud,InfluxDB会将指定的数据库和保留策略映射到相应的桶。您还可以手动将数据库/保留策略组合(DBRPs)映射到桶。有关更多信息,请参见 DBRP mapping 和 Create DBRP mappings.
以下示例 TICKscript 写入 InfluxDB Cloud 或 InfluxDB OSS Cloud 中的 my-db/my-rp 存储桶。
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')