前段时间在想Kafka怎么监控、怎么知道生产的消息或消费的消费是否有丢失,目前有几个开源的Kafka监控框架这里整理了下,不过这几个框架都有各自的问题侧重点不一样;

1、Kafka Monitor

2、Availability-Monitor-for-Kafka

3、Kafka Web Console

4、Kafka Manage

5、KafkaOffsetMonitor

kafka-monitor

git clone https://github.com/linkedin/kafka-monitor.git
cd kafka-monitor
./gradlew jar //下载依赖,这个会比较久编译源码

启动KafkaMonitor

./bin/kafka-monitor-start.sh config/kafka-monitor.properties

  启动端到端监控Kafka集群:

 ./bin/end-to-end-test.sh --topic test --broker-list localhost:9092 --zookeeper localhost:2181

  打开监控页面:http://localhost:8000/index.html 页面显示 kafka实时的度量监控值(例如,服务可用性,消息丢失率)动态图显示

  

  Kafka-monitor把度量监控信息写入JMX中,并使用jolokia框架所以可以通过http请求获取监控的度量值;

curl localhost:8778/jolokia/read/kmf.services:type=produce-service,name=*/produce-availability-avg

  Kafka-monitor与Kafka为同根同源的都是LinkedIn公司开源的不过Kafka-minitor刚开源没半年所有功能相对于其他监控框架来说比较简单;

  kafka-monitor启动后会启动一个produce、一个consume,broker过时时间为10分钟; 用于捕获服务的可用性、消息丢失率、延迟率等,可监控集群与单个kafka;

  kafka-monitor默认自动创建监控topic,可以修改为已经存在的topic,自动增加partition,确保监控topic的partition# >= broker#

  produce用于生成消息到kafka,并产生生成速率、可用性度量数据

  consume从kafka中消费消息,并产生消息丢失率、消息重复率、端到端延迟 依赖生产服务来提供消息内嵌的消息序列号和时间戳。

KafkaManager

  KafkaManager为Yahoo开源的KafkaManager管理工具, 可管理多个集群; 能够更容易地检查集群的状态, 能够创建主题, 执行首选的副本选择,能够基于集群当前的状态生成分区分配,并基于生成的分配执行分区的重分配 检查集群状态可以发现集群中主题分布不均匀、分区分布不均匀等,

KafkaManager 编译生成,下载依赖会比较久

Availability Monitor for Kafka

  Availability Monitor for Kafka微软开源的Kafka可用性、延迟性的监控框架,提供JMX接口,并可存入SqlServer;

  AvailabilityMonitor可监控发送与读取数据的可用性、延迟;

  Producer可用性=所有主题和分区成功发送消息数/尝试发送消息数

  Consumer可用性=所有主题和分区消息成功读取数/消息尝试读取数

  通过往Producer发送数据测试Producer的可用性与延迟,消息以CanaryMessage_为前缀,可以通过producerProperties.json修改;

  通过从所有分区的尾部读取数据来衡量Consumer的可用性与延迟



文章首发地址:Solinx

http://www.solinx.co/archives/851

Kafka监控框架介绍的更多相关文章

  1. DataPipeline |《Apache Kafka实战》作者胡夕:Apache Kafka监控与调优

    胡夕 <Apache Kafka实战>作者,北航计算机硕士毕业,现任某互金公司计算平台总监,曾就职于IBM.搜狗.微博等公司.国内活跃的Kafka代码贡献者. 前言 虽然目前Apache ...

  2. DataPipeline |ApacheKafka实战作者胡夕:Apache Kafka监控与调优

    https://baijiahao.baidu.com/s?id=1610644333184173190&wfr=spider&for=pc DataPipeline |ApacheK ...

  3. kafka监控系统

    Metrics-Java版的指标度量工具之一 Metrics-Java版的指标度量工具之二 JAVA Metrics 度量工具使用介绍1 JAVA Metrics度量工具 - Metrics Core ...

  4. [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍

    [连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目       录 第一章           通讯框架介绍... 2 1.1           通讯的本质... 2 1 ...

  5. YARN基本框架介绍

    YARN基本框架介绍 转载请注明出处:http://www.cnblogs.com/BYRans/ 在之前的博客<YARN与MRv1的对比>中介绍了YARN对Hadoop 1.0的完善.本 ...

  6. Inotify: 高效、实时的Linux文件系统事件监控框架

      Inotify: 高效.实时的Linux文件系统事件监控框架   概要 - 为什么需要监控文件系统? 在日常工作中,人们往往需要知道在某些文件(夹)上都有那些变化,比如:   通知配置文件的改变 ...

  7. iOS框架介绍

    iOS框架介绍      Cocoa Touch   GameKit  实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息  iOS设备之间蓝牙数据传输   从iOS7开始过期   局域网游 ...

  8. OpenCV框架介绍

    OpenCV框架介绍 概述 OpenCV是一个开放源代码的计算机视觉应用平台,由英特尔公司下属研发中心俄罗斯团队发起该项目,开源BSD证书,OpenCV的目标是实现实时计算机视觉,,是一个跨平台的计算 ...

  9. Linux ftrace框架介绍及运用

    目录: 1. ftrace背景 2. 框架介绍 3. 主要代码分析 4. ftrace的配置和使用 5. ftrace相关工具 在日常工作中,经常会需要对内核进行Debug.或者进行优化工作.一些简单 ...

随机推荐

  1. [转] Form 表单数据处理 简单教程 formidable 使用心得

    入门,高手见笑 表单数据一种是get方式, 另一种是post 方式 1.get方式 对于get方式,node处理起来非常简单 如以下代码: var urlParsed = url.parse(requ ...

  2. javascript数组(五)

    一.创建数组.数组操作 数组是指的有序集合.每个值叫做元素,每个元素,每个元素在数组中都有梳子位置编号,也就是索引.JS中数组是弱类型的,数组中可以含有不同类型的元素.数组元素甚至可以是对象或其它数组 ...

  3. 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)

    本文转载,其来源在参考中:1,稍加修改,因为近期使用到这个模块,故而加以整理! 1.平台 首先我使用的是 奋斗 STM32 开发板 MINI板 基于STM32单片机光学指纹识别模块(FPM10A)全教 ...

  4. Python_shutil模块

    import shutil 高级的文件,文件夹,压缩包的处理模块,也主要用于文件的拷贝 shutil.copyfileobj(fsrc,fdst[,length]): 将文件的内容拷贝到另一个文件(可 ...

  5. Python_tuple部分功能介绍

    x.count():元素在元组内的个数 x.index():元素在元组内的位置

  6. P1135 奇怪的电梯 dp

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第ii层楼(1 \le i \le N)(1≤i≤N)上有一个数字K_i(0 \le K_i \le N)K ...

  7. 004 使用SpringMVC开发restful API二--编写用户详情

    一:编写用户详情服务 1.任务 @PathVariable隐射url片段到java方法的参数 在url声明中使用正则表达式 @JsonView控制json输出内容 二:@PathVariable 1. ...

  8. HTML—xhtml和html5

    一.什么是XHTML? XHTML指的是可扩展超文本标记语言: XHTML与HTML 4.01几乎是相同的: XHTML是更严格跟纯净的HTML版本: XHTML是以XML应用的方式定义的HTML: ...

  9. string通过逗号分割不用split方法

    package com.simon; import java.util.ArrayList; import java.util.Iterator; import java.util.List; pub ...

  10. VS2017动态链接库(.dll)的生成与使用

    转 https://blog.csdn.net/m0_37170593/article/details/76445972 这里以VS2017为例子,讲解一下动态链接库(.dll)的生成与使用. 一.动 ...