转载请注明出处:

一、订阅功能的核心作用

InfluxDB 的订阅是一种 数据自动推送机制,当指定数据库的写入操作发生时,InfluxDB 会 实时复制数据 并推送到预先配置的端点(如 Kapacitor)。

类比说明:

  • 类似于 MySQL 的 Binlog 复制

  • 或 Kafka 的 Producer-Consumer 模型

二、订阅的工作原理

    1. 数据路径
      写入请求 → InfluxDB存储引擎 → 订阅分发器 → HTTP推送 → 接收端

    2. 协议支持

      • 默认使用 HTTP 协议(可配置 HTTPS)

      • 数据格式与 InfluxDB 行协议(Line Protocol)一致

三、订阅的配置方法

1. 创建订阅

-- 基本语法
CREATE SUBSCRIPTION "<订阅名称>"
ON "<数据库>"."<保留策略>"
DESTINATIONS <ALL|ANY> "<协议>://<主机>:<端口>/<路径>" -- 实际示例(推送到Kapacitor)
CREATE SUBSCRIPTION "kapacitor-sub"
ON "monitor"."rp30"
DESTINATIONS ALL 'http://kapacitor:9092'

2. 参数说明

参数 说明 示例值
ALL 发送到所有目标 ALL 或 ANY
ANY 发送到任意一个可用目标  
协议 支持 http/https/udp http
路径 Kapacitor 需使用 /write /kapacitor/v1/write

四、订阅的管理与查看

1. 查看所有订阅

-- 查看特定数据库的订阅
SHOW SUBSCRIPTIONS ON "monitor" -- 输出示例:
name: monitor
retention_policy name mode destinations
--------------- ---- ---- ------------
rp30 kapacitor-sub ALL [http://kapacitor:9092]

2. 删除订阅

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 stats  general
ClusterID: 183a5dd5-458f-4923-8c7c-d1951e1da259
ServerID: 675c36aa-e959-4a46-8713-cbe86346b01c
Host: kapacitor
Tasks: 16
Enabled Tasks: 16
Subscriptions: 4

Platform: OSS
Version: 1.5.9
root@kapacitor:/var/log/kapacitor#

  可以查看订阅任务得数量

Influxdb订阅与kapacitor使用梳理的更多相关文章

  1. RxJava2 中多种取消订阅 dispose 的方法梳理( 源码分析 )

    Github 相关代码: Github地址 一直感觉 RxJava2 的取消订阅有点混乱, 这样也能取消, 那样也能取消, 没能系统起来的感觉就像掉进了盘丝洞, 迷乱… 下面说说这几种情况 几种取消的 ...

  2. Jmeter & TICK

    背景:   本来只是想在将Jmeter的测试结果写入InfluxDB, 但发现从InfluxDB V1.3后开始, 已经不支持Web Admin interface, 才发现InfluxData 搞了 ...

  3. [经验交流] 试用基于 influxdb+kapacitor 的监控系统

    2017年10月16日: 使用中发现kapacitor的ui过于简单,不能满足实际工作需要,现已切换到grafana --------- 两个月前试用了基于 elasticsearch + xpack ...

  4. kafka 基础知识梳理-kafka是一种高吞吐量的分布式发布订阅消息系统

    一.kafka 简介 今社会各种应用系统诸如商业.社交.搜索.浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战: 如何收集这些巨大的信息 如何分析它 如何及时做到如上两点 ...

  5. 常用RSS订阅地址

    随着Google Reader关门大吉,转战鲜果网了,RSS订阅地址经过几次折腾,丢的没剩几个了,写个文章记录一下吧,随时补充. --PS-- ,微信.微博之类的是社交平台,不能很好的梳理知识,一直用 ...

  6. InfluxDB安装及配置

    这是我之前整理的InfluxDB安装及配置的笔记,这里记录下,也方便我以后查阅. 环境: CentOS6.5_x64 InfluxDB版本:1.1.0 一.安装 1.二进制安装 这里以centos6. ...

  7. Kapacitor之TICK脚本,监控输出

    好久没更新博客园了,说来也惭愧,之前说好每隔几天更新一个的,虽然没什么人看,但是作为一个记录,回顾也是能有新的认识,这篇博客是讲的目前我在工作中使用的一个结束点,这个技术点目前网上资料少之甚少,也是希 ...

  8. 梳理vue双向绑定的实现原理

    Vue 采用数据劫持结合发布者-订阅者模式的方式来实现数据的响应式,通过Object.defineProperty来劫持数据的setter,getter,在数据变动时发布消息给订阅者,订阅者收到消息后 ...

  9. influxdb 全家桶运行

    一个简单的demo,集成了telegraf,influxdb,chronograf,kapacitor,nginx,一张来自官方的参考图 组件集成图 环境准备 使用docker-compose doc ...

  10. InfluxDB部署

    InfluxDB介绍 官网:https://www.influxdata.com/ 文档:https://docs.influxdata.com/influxdb/v1.2/introduction/ ...

随机推荐

  1. AtCoder Beginner Contest 369 补题记录

    A - 369 题意: 给定A和B,求有多少个x可以和A,B构成等差数列 思路: 分三种情况讨论 A == B 则x不得不与A和B想等 x位于A和B中间 只有B - A 为偶数才有这种情况存在 x位于 ...

  2. FastAPI安全认证:从密码到令牌的魔法之旅

    title: FastAPI安全认证:从密码到令牌的魔法之旅 date: 2025/06/02 13:24:43 updated: 2025/06/02 13:24:43 author: cmdrag ...

  3. 2022 电赛C题 巡线基础模块代码(带控制)

    巡线功能模块 from maix import camera, display, gpio, pwm class FindLine(): def __init__(self): self.THRESH ...

  4. umijs中简单使用umi-request

    在umi.js4中使用umi-request进行网络请求,查看官网后还是没明白,便自己摸索一遍,如下把简单使用的过程记录下来,以便共享给其他需要的小伙伴做参考,如有不对的地方,烦请指出. 第一步:安装 ...

  5. Dify实战案例:AI邮件批量发送器!

    在 Dify 的使用中,有很多很实用并且很好玩的案例,例如今天给大家介绍这个"AI邮件批量发送器". 在没有 Dify 之前,我们要实现邮件的批量发送是件很难的事,不但要写很长的代 ...

  6. linux系统磁盘快速创建多个分区

    # 创建分区 [root@centos7 ~]# cat parted.sh parted --script /dev/sdb \ mklabel gpt \ mkpart primary 1MiB ...

  7. Jenkinsfile_配置定时任务

    triggers 在jenkinsfile来定义流水线时,常规情况下,项目都是基于手动点击部署,这种策略尤其适用于线上环境,但在测试环境,乃至于预发环境,应该对自动构建有更高的集成度,使开发者只关注于 ...

  8. .NET 10 引入 后量子密码学 (PQC)

    .NET 10 预览版 5 悄悄引入了对基于新定稿行业标准的后量子加密(PQC)的支持,这标志着帮助开发人员保护应用程序免受未来量子驱动攻击的早期举措.后量子密码学 (PQC) 支持是一项坚定地展望未 ...

  9. ChunJun Meetup演讲分享 | 基于袋鼠云开源框架的数仓一体化建设探索

    8月27日,ChunJun社区联合OceanBase社区举办开源线下Meetup,围绕「构建新型的企业级数仓解决方案」主题,多位技术大牛和现场爱好者汇聚一堂,畅所欲言. 会上,袋鼠云大数据引擎开发专家 ...

  10. Mybatis - 精巧的持久层框架-缓存机制的深刻理解

    Mybatis缓存机制 Mybatis的缓存机制是其性能优化的核心,也是面试中的高频考点.理解它不仅能写出更高性能的代码,还能明白框架设计中对性能与数据一致性权衡的智慧. 此教程从概念到实战,从基础到 ...