文档文档

将 Flux 任务与 Kapacitor 结合使用

使用 Kapacitor 1.6+ 针对 InfluxDB 和其他数据源运行 Flux 任务。利用完整的 Flux 函数库在 Kapacitor 中构建强大的数据处理和监控任务。

开始之前

在开始使用 Flux 任务之前,请注意以下事项:

  • Kapacitor Flux 任务无法使用 Kapacitor 主题(topics)或事件处理器(event handlers)。你只能通过 Flux 脚本内部使用 Flux 通知端点(notification endpoints)来发送警报。
  • Flux 任务由内置于 Kapacitor 1.6+ 中的 Flux 任务引擎调度和执行。该引擎与 Kapacitor 的 TICKscript 任务引擎是分开的。
  • Flux 任务通过 Flux 任务脚本内的 Flux task 选项进行配置。这包括任务名称和执行计划。

选择你正在使用的 InfluxDB 版本

  1. 在 InfluxDB 中设置 Flux 任务数据库
  2. 配置 Kapacitor Flux 任务
  3. 创建 Flux 任务

在 InfluxDB 中设置 Flux 任务数据库

(可选,但建议配置)

当 Kapacitor 执行 Flux 任务时,它可以将有关任务执行(run)的信息存储在 InfluxDB 数据库中。要存储此数据,请执行以下操作:

  1. 在 InfluxDB 中创建一个新数据库,用于存储 Flux 任务的运行记录和日志数据。

    CREATE DATABASE kapacitorfluxtasks
  2. 为防止磁盘上积累大量的 Kapacitor Flux 任务日志数据,请更新默认的 autogen 保留策略(RP)并设置有限的保留期,或者创建一个具有有限保留期的新保留策略。

-- Syntax
ALTER RETENTION POLICY <rp-name> ON <db-name> DURATION <new-retention-duration>

-- Example
ALTER RETENTION POLICY autogen ON kapacitorfluxtasks DURATION 3d
-- Syntax
CREATE RETENTION POLICY <rp-name> on <db-name> DURATION <retention-duration>

-- Example 
CREATE RETENTION POLICY threedays on kapacitorfluxtasks DURATION 3d

配置 Kapacitor Flux 任务

kapacitor.conf[fluxtask] 下更新或添加以下设置:

  • enabled: true
  • task-run-influxdb: 用于存储 Flux 任务数据的 InfluxDB 配置(位于 kapacitor.conf 中)的名称。若要禁用 Flux 任务日志记录,请设置为 "none"
  • task-run-bucket: 用于存储 Flux 任务数据和日志的 InfluxDB 数据库。建议将其留空。默认情况下,数据会写入 kapacitor_fluxtask_logs 数据库。要指定另一个数据库来写入任务日志数据,请使用 "db-name" 命名规范(不支持包含保留策略的 "db-name/rp" 格式)。如果指定的数据库在 InfluxDB 中尚不存在,Kapacitor 将尝试创建该数据库。如果开启了身份验证,则需要 CREATE DATABASE 的权限。更多信息,请参阅 InfluxDB 中的身份验证和授权
  • 提供以下任一选项:
    • task-run-org: 留为空字符串 ("")
    • task-run-orgid: 留为空字符串 ("")
  • task-run-measurement: 用于存储任务运行和日志数据的 InfluxDB measurement。默认值为 "runs"
Kapacitor Flux 任务配置示例
# ...

[fluxtask]
  enabled = true
  task-run-influxdb = "default"
  task-run-bucket = "kapacitor_fluxtask_logs"
  task-run-org = ""
  task-run-orgid = ""
  task-run-measurement = "runs"

# ...

有关 Kapacitor [fluxtask] 配置选项的更多信息,请参阅 配置 Kapacitor

创建 Flux 任务

  1. 创建一个 Flux 任务脚本。在脚本中包含 任务选项 以配置 Kapacitor Flux 任务。有关编写 Flux 任务的更多信息,请参阅:

    提供 InfluxDB 连接凭据

    from()to() 函数需要你的 InfluxDB 主机地址 (host)令牌 (token)

    Bucket 名称语法

    使用 Flux 查询或写入 InfluxDB 1.x 时,请使用 数据库名称/保留策略名称 的模式来指定你的 bucket。

    example-task.flux
    option task = {
      name: "example-task-name",
      every: 1h,
      offset: 10m
    }
    
    host = "https://:8086"
    token = ""
    
    from(bucket: "example-db/example-rp", host: host, token: token)
      |> range(start: -task.every)
      |> filter(fn: (r) => r._measurement == "example-measurement")
      |> aggregateWindow(every: 10m, fn: mean)
      |> to(bucket: "example-db/example-rp-downsampled", host: host, token: token)
  2. 使用 kapacitor flux task create 命令将你的 Flux 脚本添加为 Kapacitor Flux 任务。

    kapacitor flux task create --file /path/to/example-task.flux

有关创建 Kapacitor Flux 任务的更多详细信息,请参阅 创建 Kapacitor Flux 任务

考虑使用 InfluxDB 任务

如果你使用的是 InfluxDB CloudInfluxDB OSS 2.x,请考虑使用 原生的 InfluxDB 任务 进行数据处理。

  1. 为 InfluxDB Cloud 或 2.x 设置 Kapacitor
  2. 为 InfluxDB Cloud 或 2.x 配置 Kapacitor Flux 任务
  3. 创建 Flux 任务

为 InfluxDB Cloud 或 2.x 设置 Kapacitor

配置 Kapacitor 以连接到 InfluxDB Cloud 或 InfluxDB OSS 2.x。详细说明请参阅以下内容:

为 InfluxDB Cloud 或 2.x 配置 Kapacitor Flux 任务

kapacitor.conf[fluxtask] 下更新或添加以下设置:

  • enabled: true
  • task-run-influxdb: 用于存储 Flux 任务数据的 InfluxDB 配置(位于 kapacitor.conf 中)的名称。若要禁用 Flux 任务日志记录,请设置为 "none"
  • task-run-bucket: 用于存储 Flux 任务数据和日志的 InfluxDB bucket。建议将其留空。默认情况下,数据写入 kapacitor_fluxtask_logs bucket。要指定另一个用于写入任务日志数据的 bucket,请使用 _tasks 系统 bucket创建一个新 bucket。如果指定的 bucket 在 InfluxDB 中尚不存在,Kapacitor 将尝试通过 POST /api/v2/buckets 创建它,在这种情况下,你的 API 令牌必须拥有在 InfluxDB 中创建 bucket 的权限。更多信息,请参阅 管理 API 令牌
  • 提供以下任一选项:
    • task-run-org: InfluxDB 组织名称。
    • task-run-orgid: InfluxDB 组织 ID。
  • task-run-measurement: 用于存储任务运行和日志数据的 InfluxDB measurement。默认值为 "runs"
# ...

[fluxtask]
  enabled = true
  task-run-influxdb = "InfluxDB"
  task-run-bucket = "kapacitor_fluxtask_logs"
  task-run-org = "example-org"
  task-run-measurement = "runs"

# ...

创建 Flux 任务

  1. 创建一个 Flux 任务脚本。在脚本中包含 任务选项 以配置 Kapacitor Flux 任务。有关编写 Flux 任务的更多信息,请参阅:

    提供 InfluxDB 连接凭据

    from()to() 函数需要你的 InfluxDB 主机地址令牌

    example-task.flux
    option task = {
      name: "example-task-name",
      every: 1h,
      offset: 10m
    }
    
    host = "https://:8086"
    token = ""
    
    from(bucket: "example-bucket", host: host, token: token)
      |> range(start: -task.every)
      |> filter(fn: (r) => r._measurement == "example-measurement")
      |> aggregateWindow(every: 10m, fn: mean)
      |> to(bucket: "example-bucket-downsampled", host: host, token: token)
  2. 使用 kapacitor flux task create 命令将你的 Flux 脚本添加为 Kapacitor Flux 任务。

    kapacitor flux task create --file /path/to/example-task.flux

有关创建 Kapacitor Flux 任务的更多详细信息,请参阅 创建 Kapacitor Flux 任务


此页面是否有帮助?

感谢您的反馈!


InfluxDB OSS 2.9.0:API 令牌默认进行哈希处理

InfluxDB OSS 2.9.0 增强了令牌安全性 —— 令牌在磁盘上默认进行哈希处理。现有令牌在首次启动时会被哈希,之后无法恢复。请在升级前保存您仍然需要的所有明文令牌。

查看 InfluxDB OSS 2.9.0 发行说明

哈希令牌的认证方式与未哈希令牌完全相同 —— 客户端和集成功能可继续正常工作。

2.9.0 中的其他新特性

  • 可配置的备份压缩
  • 恢复对包含哈希令牌的备份的支持
  • 更严格的边缘数据复制(Edge Data Replication)队列验证
  • Flux 升级
  • 压缩可靠性改进

Explorer 1.9 的主要增强功能

Explorer 1.9 现已发布,支持 InfluxQL、AI 辅助的 Flux 转 SQL 转换器(测试版)以及新的实时示例数据模拟器。

查看 Explorer 1.9 发行说明

Explorer 1.9 包含多项新功能和改进,使查询、可视化和管理数据变得更加轻松。

亮点

  • Flux 转 SQL 转换器(测试版):通过 AI 辅助转换器将 Flux 查询转换为 SQL。
  • InfluxQL 支持:在数据浏览器(Data Explorer)和仪表板中使用 InfluxQL 查询数据,并保存和加载 InfluxQL 查询。
  • InfluxQL 可视化:根据 InfluxQL 结果渲染折线图和柱状图,并支持按标签进行序列分组。
  • 查询错误历史记录:在查询工具中查看查询错误历史记录。
  • 实时示例数据模拟器:使用新的鸟类数据和信号发生器模拟器生成连续的实时示例数据。

更多详细信息,请参阅 Explorer 1.9 发行说明

InfluxDB 3.10 现已发布

InfluxDB 3 Core 3.10 增加了自动目录格式升级、可配置的查询并发限制以及处理引擎改进。

InfluxDB 3 Core 3.10 的关键更新

  • 目录格式升级:在 3.10 首次启动时,磁盘目录会自动从 v2 格式升级到 v3 格式。迁移是单向的——升级前请务必备份您的目录。
  • --max-concurrent-queries:限制并发查询(可在运行时调整)。
  • GET /ready 端点,用于就绪探针。
  • 处理引擎:跨数据库查询和触发器锁定标志。

更多信息,请参阅 InfluxDB 3 Core 发行说明

InfluxDB 3.10 现已发布

InfluxDB 3 Enterprise 3.10 增加了自动备份与恢复、行级删除和用户管理功能,并改进了自动目录格式升级和性能预览。

InfluxDB 3 Enterprise 3.10 的关键更新

  • 目录格式升级:在 3.10 首次启动时,磁盘目录会自动从 v2 格式升级到 v3 格式。迁移是单向的——升级前请务必备份您的目录。
  • 自动备份与恢复(测试版)
  • 行级删除
  • 用户管理(认证和 RBAC)— 预览版
  • 性能预览改进

备份与恢复、行级删除以及性能预览需要升级到企业级存储引擎(选择性加入测试版)。测试版和预览版功能可能会发生重大变更,不建议用于生产环境。

更多信息,请参阅 InfluxDB 3 Enterprise 发行说明

Telegraf Enterprise 现已全面上市(General Availability)

Telegraf Enterprise 现已全面上市,同时发布的还有 Telegraf Controller v1.0

Telegraf Enterprise 将 Telegraf Controller(一个用于 Telegraf 的集中式管理控制台)与 InfluxData 的官方支持相结合。通过单一系统管理配置、监控集群健康状况并操作数以万计的 Telegraf 代理。

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

2026 年 9 月 15 日起,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在 Docker 部署中使用特定版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2