Influxdb订阅与kapacitor使用梳理
转载请注明出处:一、订阅功能的核心作用
InfluxDB 的订阅是一种 数据自动推送机制,当指定数据库的写入操作发生时,InfluxDB 会 实时复制数据 并推送到预先配置的端点(如 Kapacitor)。
类比说明:
[*]类似于 MySQL 的 Binlog 复制
[*]或 Kafka 的 Producer-Consumer 模型
二、订阅的工作原理
[*]数据路径
写入请求 → InfluxDB存储引擎 → 订阅分发器 → HTTP推送 → 接收端
[*]协议支持
[*]默认使用 HTTP 协议(可配置 HTTPS)
[*]数据格式与 InfluxDB 行协议(Line Protocol)一致
三、订阅的配置方法
1. 创建订阅
-- 基本语法
CREATE SUBSCRIPTION "<订阅名称>"
ON "<数据库>"."<保留策略>"
DESTINATIONS"<协议>://<主机>:<端口>/<路径>"
-- 实际示例(推送到Kapacitor)
CREATE SUBSCRIPTION "kapacitor-sub"
ON "monitor"."rp30"
DESTINATIONS ALL 'http://kapacitor:9092'2. 参数说明
参数说明示例值ALL发送到所有目标ALL 或 ANYANY发送到任意一个可用目标 协议支持 http/https/udphttp路径Kapacitor 需使用 /write/kapacitor/v1/write四、订阅的管理与查看
1. 查看所有订阅
-- 查看特定数据库的订阅
SHOW SUBSCRIPTIONS ON "monitor"
-- 输出示例:
name: monitor
retention_policy name mode destinations
--------------- ---- ---- ------------
rp30 kapacitor-sub ALL2. 删除订阅
DROP SUBSCRIPTION "kapacitor-sub" ON "monitor"."rp30"3. 查看订阅状态(需监控端点)
kapacitor stats ingress
五、订阅的核心特点
1. 实时性
[*]数据写入 InfluxDB 后 毫秒级 推送到订阅端
[*]对比查询拉取模式,延迟降低 90% 以上
2. 可靠性
保障机制说明重试机制默认重试 3 次(可配置)离线缓存网络中断时缓存 1000 条数据(默认)数据去重通过 UUID 避免重复推送六、Kapacitor日志分析数据写入
查看kapacitor得日志:
(1)数据来源
[*]InfluxDB 订阅推送:
[*]InfluxDB 的 monitor.rp30 数据通过 HTTP POST 推送到 Kapacitor 的 /write 端点。
[*]触发条件:InfluxDB 的 CREATE SUBSCRIPTION 配置生效。
(2)数据内容
[*]数据库:monitor
[*]保留策略:rp30
[*]时间精度:ns(纳秒级时间戳)
[*]一致性级别:未指定(默认 all)
(3)Kapacitor 处理
[*]成功接收(status=204):
[*]Kapacitor 正确接收数据,未返回内容(204 No Content)。
七、Kapacitor命令分析
命令作用与 ingress 的关联性kapacitor stats general查看任务处理状态若 ingress 有数据但任务无处理,需检查任务逻辑kapacitor stats egress查看数据输出(如HTTP告警发送)确认数据是否被正确处理并转发influx -execute "SHOW STATS"查看InfluxDB推送统计对比InfluxDB发送量与Kapacitor接收量(1)kapacitor stats egress
典型输出示例:
Database Retention Policy Measurement Points Received
------------------------ ----------- ---------------
monitor rp30 cpu 1500
_kapacitor autogen edges 39451字段说明Database数据来源的数据库名(如 monitor)Retention Policy数据所属的保留策略(如 rp30)Measurement指标名称(如 cpu)Points Received累计接收的数据点数(持续增长表示数据正常流动)
(2)kapacitor stats general
root@kapacitor:/var/log/kapacitor# kapacitor statsgeneral
ClusterID: 183a5dd5-458f-4923-8c7c-d1951e1da259
ServerID: 675c36aa-e959-4a46-8713-cbe86346b01c
Host: kapacitor
<strong>Tasks: </strong><strong>16
Enabled Tasks: 16
Subscriptions: 4</strong>
Platform: OSS
Version: 1.5.9
root@kapacitor:/var/log/kapacitor# 可以查看订阅任务得数量
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]