Documentation

管理Kapacitor订阅

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

Kapacitor 订阅如何工作

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

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

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

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

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

容器化或短暂文件系统中的Kapacitor ID

在容器化环境中,文件系统被视为短暂的,通常在容器停止和重启之间不会持久化。 如果 /var/lib/kapacitor/ 未持久化,Kapacitor 在启动时会创建一个新的 InfluxDB 订阅,导致不必要的“重复”订阅。 您将需要手动 删除不必要的订阅

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

配置Kapacitor订阅

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

示例 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文件的位置取决于您的操作系统以及 data-dir 在您的 kapacitor.conf 中的设置。

  2. 运行以下命令:

    kapacitor stats general
    

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

重复的Kapacitor订阅

重复的Kapacitor订阅通常是由于/var/lib/kapacitor的内容在重启之间未能持久化所导致,如上面所述。解决方案是确保该目录的内容得到持久化。任何已经创建的重复Kapacitor订阅将需要手动删除



Flux的未来

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

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

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

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