文档文档

管理 Kapacitor 订阅

Kapacitor 通过使用 InfluxDB 订阅、本地或远程端点与 InfluxDB 紧密集成,所有写入 InfluxDB 的数据都会复制到这些端点。Kapacitor 订阅 InfluxDB,使其能够捕获、操作和处理您的数据。

Kapacitor 订阅的工作原理

Kapacitor 允许您在数据写入 InfluxDB 时对其进行操作和处理。所有数据都通过 InfluxDB 订阅复制到您的 Kapacitor 服务器或集群,而不是查询 InfluxDB 获取数据(使用 BatchNode (批处理节点) 时除外)。这减少了 InfluxDB 上的查询负载,并将与数据操作相关的开销隔离到您的 Kapacitor 服务器或集群。

启动时,Kapacitor 会检查 InfluxDB 中是否存在与 Kapacitor 服务器或集群 ID 匹配的名称的订阅。此 ID 存储在 /var/lib/kapacitor/ 中。如果 ID 文件在启动时不存在,Kapacitor 会创建它。如果 InfluxDB 中不存在与 Kapacitor ID 匹配的订阅,Kapacitor 会在 InfluxDB 中创建新订阅。此过程确保 Kapacitor 停止时,只要 /var/lib/kapacitor/ 的内容保持不变,它就会在重启时重新连接到相同的订阅。

InfluxDB 用户必须具有管理员权限

用于为 Kapacitor 创建订阅的 InfluxDB 用户必须具有管理员权限。配置 InfluxDB 用户以与 Kapacitor 配置文件中的 [influxdb].username 设置 一起使用。

Kapacitor 存储其 ID 的目录可以使用 kapacitor.conf 中的 data-dir 根配置选项 进行配置。

容器化或临时文件系统中的 Kapacitor ID

在容器化环境中,文件系统被认为是临时的,并且通常不会在容器停止和重启之间持久存在。如果 /var/lib/kapacitor/ 没有持久化,Kapacitor 将在启动时创建新的 InfluxDB 订阅,从而导致不必要的“重复”订阅。然后,您需要手动 删除不必要的订阅

为避免这种情况,请持久化 /var/lib/kapacitor 目录。有许多持久化策略可用,具体使用哪种策略取决于您的特定架构和容器化技术。

配置 Kapacitor 订阅

Kapacitor 订阅配置选项在 kapacitor.conf 中的 [[influxdb]] 部分下可用。以下是订阅特定配置选项的示例,后跟每个选项的描述。

Kapacitor 订阅配置示例

[[influxdb]]

  # ...

  disable-subscriptions = false
  subscription-mode = "server"
  subscription-protocol = "http"
  subscriptions-sync-interval = "1m0s"

  # ...

  [influxdb.subscriptions]
    my_database1 = [ "default", "longterm" ]
  [influxdb.excluded-subscriptions]
    my_database2 = [ "default", "shortterm" ]

disable-subscriptions (禁用订阅)

设置为 true 以禁用所有订阅。

subscription-mode (订阅模式)

定义 Kapacitor 的订阅模式。可用选项

  • "server" (服务器)
  • "cluster" (集群)

默认设置为 cluster

subscription-protocol (订阅协议)

定义用于订阅的协议。可用选项

  • "udp"
  • "http"
  • "https"

默认设置为 http

[influxdb.subscriptions]

定义要订阅的数据库和保留策略集。如果为空,Kapacitor 将订阅所有数据库和保留策略,但 [influxdb.excluded-subscriptions] 中列出的数据库和保留策略除外。

[influxdb.subscriptions]
  # Pattern:
  db_name = <list of retention policies>

  # Example:
  my_database = [ "default", "longterm" ]

[influxdb.excluded-subscriptions]

定义要从订阅中排除的数据库和保留策略集。

[influxdb.excluded-subscriptions]
  # Pattern:
  db_name = <list of retention policies>

  # Example:
  my_database = [ "default", "longterm" ]

只需要定义 [influxdb.subscriptions][influxdb.excluded-subscriptions] 中的一个。它们本质上以不同的方式实现相同的目的,但特定的用例确实更适合其中一种。

故障排除

查看 Kapacitor 服务器或集群 ID

有两种方法可以查看您的 Kapacitor 服务器或集群 ID

  1. 查看 /var/lib/kapacitor/server.id/var/lib/kapacitor/cluster.id 的内容。

    ID 文件的位置取决于您的操作系统和 kapacitor.conf 中的 data-dir 设置。

  2. 运行以下命令

    kapacitor stats general
    

    服务器和集群 ID 包含在输出中。

重复的 Kapacitor 订阅

重复的 Kapacitor 订阅通常是由 /var/lib/kapacitor 的内容在重启之间未持久化引起的,如 上文 所述。解决方案是确保持久化此目录的内容。任何已创建的重复 Kapacitor 订阅都需要 手动删除


此页内容对您有帮助吗?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB 3 开源版本现已发布公开 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看