管理 Kapacitor 订阅
Kapacitor 通过使用 InfluxDB 订阅与 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
查看
/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 和本文档的反馈和错误报告。如需支持,请使用以下资源