管理 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 使用。
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:
查看
/var/lib/kapacitor/server.id或/var/lib/kapacitor/cluster.id的内容。ID 文件的位置取决于您的操作系统和
kapacitor.conf中的data-dir设置。运行以下命令
kapacitor stats general服务器和集群 ID 将包含在输出中。
Kapacitor 订阅重复
Kapacitor 订阅重复通常是由于 /var/lib/kapacitor 的内容在重启之间未持久化造成的,如 上文所述。解决方法是确保此目录的内容得到持久化。任何已创建的重复 Kapacitor 订阅都需要 手动删除。
此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 Kapacitor 和本文档提供反馈和错误报告。要获取支持,请使用以下资源: