基于jmx监控kafka_0542-6.1.0-非安全环境下Kafka管理工具Kafka Eagle安装使用

1.文档编写目的

Fayson在前面的文章介绍了《0374-如何在CDH集群中部署Kafka Manager》,本篇文章Fayson介绍另外一款的监控工具Kafka-eagle,它可以同时监控多个集群,监控集群中Topic的被消费情况(包含Lag产生、Offset的改变及Partition分布),同时也支持SQL查询。接下来Fayson主要介绍下在非安全环境下Kafka-eagle的安装及使用。

  • 内容概述

1.环境准备及安装

2.Kafka-eagle配置

3.Kafka-eagle使用

4.总结

  • 测试环境

1.CM和CDH版本为6.1.0

2.Kafka版本为2.0.0

3.Kafka-eagle版本为1.2.9

2.环境准备及说明

1.Kafka-eagle运行依赖Java运行环境,需要在部署节点安装JDK(支持JDK8+)

export JAVA_HOME=/usr/java/jdk1.8.0_131-clouderaexport PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar:$CLASSPATH
9d3c88c76955b8ca89be0b45f84852dc.png

验证Java环境是否配置成功

40df9d11443cc324964d245011c0d9d3.png

2.Kafka-eagle对Kafka版本支持

cb1ca3be09edc6569d15e966a0c7a939.png

更多信息可在github上查看:https://github.com/smartloli/kafka-eagle

3.Kafka-eagle下载,可以在github上下载源码编译或是官网下载已编译好版本,地址如下

源码下载地址:https://github.com/smartloli/kafka-eagle

编译好版本下载地址:https://github.com/smartloli/kafka-eagle-bin/archive/v1.2.9.tar.gz

c585cdb1853074c0cfc518e243105e12.png

4.修改CDH中Kafka服务JMX监听地址,默认监听地址为127.0.0.1

将Broker Java Options选项中“-Dcom.sun.management.jmxremote.host=127.0.0.1”删除,修改后的配置如下:

-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80 -XX:+DisableExplicitGC -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote.local.only=true
898ce5a59937d0fe819e29ebf749b6a6.png

保存配置并重启Kakfa服务,启动成功后在命令行验证监听地址是否由127.0.0.1修改为0.0.0.0

93143c7c3592cdfd530084d0c6e0e06b.png

3.Kafka-eagle安装及配置

1.Fayson选择已编译好的版本进行安装部署,使用wget命令直接下载

a6ba12c163dc7c2e42cc782049292479.png

2.将下载的v1.2.9.tar.gz解压并移到/opt/clouera目录下

[root@cdh3 ~]# tar -zxvf v1.2.9.tar.gz[root@cdh3 ~]# tar -zxvf kafka-eagle-bin-1.2.9/kafka-eagle-web-1.2.9-bin.tar.gz[root@cdh3 ~]# mv kafka-eagle-web-1.2.9/ /opt/cloudera/kafka-eagle[root@cdh3 ~]# ll /opt/cloudera/kafka-eagle/
6fcadb3a031961686f47b7824cff361d.png

3.配置Kafka-eagle环境变量,在/etc/profile文件中增加如下内容

export KE_HOME=/opt/cloudera/kafka-eagle/export export PATH=$KE_HOME/bin:$PATH
0e87b275102e4f1b0b1a913e406c5d08.png

执行source /etc/profile命令使环境变量生效。

4.进入{KE_HOME}/conf目录下修改system-config.properties,内容如下:

#Fayson只有一个Kafka集群,所以注释了cluster2的配置kafka.eagle.zk.cluster.alias=cluster1cluster1.zk.list=cdh1:2181,cdh3:2181,cdh4:2181#cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181kafka.zk.limit.size=25#kafka-eagle管理平台web端口号kafka.eagle.webui.port=8048#kafka版本为2.0.0使用的kafka存储offsetcluster1.kafka.eagle.offset.storage=kafka#cluster2.kafka.eagle.offset.storage=zk#Kafka-eagle的监控指标及SQL功能开关kafka.eagle.metrics.charts=truekafka.eagle.sql.fix.error=truekafka.eagle.sql.topic.records.max=5000#删除Topic需要输入的tokenkafka.eagle.topic.token=keadmin#Kafka-eagle元数据库,默认为sqlitekafka.eagle.driver=com.mysql.jdbc.Driverkafka.eagle.url=jdbc:mysql://cdh4:3306/kafkaeagle?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNullkafka.eagle.username=rootkafka.eagle.password=123456
dbeea8c51c035a231ee816846ee55aa0.png

未列出的配置均使用默认配置即可。

5.配置中选择使用MySQL存储Kafka-eagle的元数据,需要在MySQL上创建一个kafkaeagle的数据库

d06364436aef7964bff1c01a595d7791.png

6.进入{KE_HOME}/bin目录下启动kafka-eagle服务

[root@cdh3 bin]# pwd/opt/cloudera/kafka-eagle/bin[root@cdh3 bin]# chmod +x ke.sh [root@cdh3 bin]# ./ke.sh start
77fb454cd7d77167e8f7873e80356c3f.png

脚本执行成功显示如下:

c041f342bf571fa8f15fea4ad66c9f3d.png

脚本执行成功后,会提示kafka-eagle服务的访问地址及账号密码。

7.在浏览器输入http://test.cm.com:8048/ke

2462e51589a4826baa0b4b3bbe7d7d55.png

4.Kafka-eagle使用

1.输入账号密码登录Kafka-eagle,主页面总览Kafka集群的Brokers、Topics、Zookeepers及ConsumerGroups等信息

d3bacefc637a20a4530a64e72fbee4e0.png

2.在管理界面行创建一个测试Topic

2f3f8450f8a51e9cc2eacb87160837a6.png

创建成功

e2e7ae1ec1eaef8698b9f5cc3e4ce6a2.png

CM上也可以看到创建成功的Topic

0e7bd3a07affdaca05f8583d4c454ba8.png

3.Kafka-eagle提供Mock功能,可以模拟向指定的Topic发送消息

dd74904239fbcea7e8d8f7222c42e063.png

4.查看Kafka集群所有Topic

6ea8883130072aeef0c20744515673a9.png

点击Topic Name查看Topic的Partition、Leader、Replicas及ISR列表

03d220223cfa605324edc2bd41c79730.png

5.Consumers下可以看到所有Group的消费Topic的情况及消费进度

2bf7ccc40092e30eba199d45fff23542.png

点击Group名称查看详情

e5319d17d872b0685bd8a446c893e559.png

点击“Pending”查看具体Topic消费情况

e2e0f4d257bd244ad7dd8e701ce9c65a.png

6.通过Metrics可以看到集群的Brokers、Kafka和Zookeeper的各项监控指标

6c79f5f8d269656637a9290cbedcce0a.png
e5795a32ba0d615bb1155ee7fa95adbf.png
0ac98ceb3bab6f68bfae46ca853415a1.png

7.可以通过Kafka-eagle配置告警,关于消息消费延迟、Kafka和Zookeeper服务状告警,前提是需要配置邮箱服务器信息

a908ac0deeefa271a0dfb3f2126dce34.png

8.系统管理功能用户、角色、系统功能管理

f7f90883632d213b20ee702bfc243614.png

5.总结

1.相比之前介绍的Kafka Manager工具Fayson更喜欢Kafka-eagle,界面简洁操作方便

2.Kafka-eagle支持SQL查询,但Fayson使用的版本有个sql.js加载时报错,导致无法使用,暂时没有截图演示功能。

3.Kafka-eagle管理Kafka集群是通过JMX获取集群的信息,所以要确保Kafka的JMX已启用(CDH默认已启用),在C6版本JMX监听的IP地址为127.0.0.1,需要修改监听的IP地址。

4.支持邮件、微信和钉钉告警,Consumer group对指定topic消费滞后告警,集群Brokers和Zookeeper服务异常告警。

5.注意cluster2.kafka.eagle.offset.storage配置,Kafka较早版本(0.8.2.x)offset是存在Zookeeper的。

更多功能可参考官方文档:https://ke.smartloli.org/

在安装测试过程总使用的Kafka自带的性能测试脚本生成和消费消息

[root@cdh05 lib]# more /root/client.properties client.id=testgroupbootstrap.servers=cdh2:9092,cdh3:9092,cdh4:9092max.request.size=4192256

生产消息脚本

/opt/cloudera/parcels/CDH/lib/kafka/bin/kafka-producer-perf-test.sh --topic test_topic_eagle --num-records 1000 --producer.config /root/client.properties --throughput 10 --record-size 1024

消费消息脚本

/opt/cloudera/parcels/CDH/lib/kafka/bin/kafka-consumer-perf-test.sh --topic test_topic_eagle --messages 1000 --fetch-size 10000 --broker-list cdh2:9092,cdh3:9092,cdh4:9092

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 怎么调用js项目_APP逆向神器之Frida【Android初级篇】

说到逆向APP,很多人首先想到的都是反编译,但是单看反编译出来的代码很难得知某个函数在被调用时所传入的参数和它返回的值,极大地增加了逆向时的复杂度,有没有什么办法可以方便地知道被传入的参数和返回值呢?答案是有的…

ef mysql modelfirst_MySQL –EF edmx(Model First)– Sql Server table

一、mysql environmentWhen we create an new database,first We need draw er diagram for somebody to show your idea,but our company have no goodauthorised tool to design sqlserver ER diagram,so I use mysql graphical tool to design it, after that,you can use m…

db2 联邦 mysql_DB2联邦数据库及配置方法(及联邦密码修改)

如果您需要使用所有不同的数据库,包括选择、插入、更新和删除,就象所有的表都位于单个数据库中那样,那么将获得非常高的工作效率。数据库联邦就是要做到这一点:使所有表看起来象是在同一个数据库中那么,数据库联邦是怎…

mysql t 保存_检查 (调试) - 离线消息保存到 MySQL - 《EMQ X Enterprise v4.1 中文文档》 - 书栈网 · BookStack...

离线消息保存到 MySQL搭建 MySQL 数据库,并设置用户名密码为 root/public,以 MacOS X 为例:$ brew install mysql$ brew services start mysql$ mysql-u root-h localhost-pALTER USERrootlocalhostIDENTIFIED BYpublic;初始化 MySQL 数据库:$ mysql-u r…

java @valid 密码不一致_一个成熟的Java项目如何优雅地处理异常

(一)概述异常处理是一个系统最重要的环节,当一个项目变得很大的时候,异常处理和日志系统能让你快速定位到问题。对于用户或者接口调用者而言,优雅的异常处理可以让调用者快速知道问题所在。本文将介绍如何优雅地处理异常。(二)使用通用的返回…

spark消费kafka产生数据堆积怎么处理_SparkStreaming读取Kafka的两种方式

本文主要从以下几个方面介绍SparkStreaming读取Kafka的两种方式:一、SparkStreaming简介二、Kafka简介三、Redis简介(可用于保存历史数据或偏移量数据)四、SparkStreaming读取Kafka数据的两种方式 五、演示Demo一、SparkStreaming简介可以参考这篇文章:SparkStreami…

python字符串操作作业_python 第二天作业

#python 中的循环#先介绍for循环#格式#for 临时变量 in 可迭代对象# 循环体#name neusoft#for a in name :# print(a)# if a s# print(嘿嘿)#循环次数哪里去了?# #这个a是什么鬼? a是临时变量 提前声明 python自动为你创建#range (起始位置&#xff0c…

python 白化_Python新疆某气候要素IDW(反距离权重)插值

1、Rbf插值import numpy as npimport cartopy.crs as ccrsimport cartopy.feature as cfeatfrom cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTERfrom cartopy.io.shapereader import Readerimport matplotlib.pyplot as pltimport matplotlib.ticker a…

帆软报表参数传给网络报表_报表开发工具FineReport的使用: 程序网络报表

1定义程序网络报表程序网络报表所在类需要继承com.fr.web.reportlet这个抽象类,并且需要实现createReport(ReportletRequest arg0)这个方法,并返回报表对象。具体代码如下:2//程序网络报表package com.fr.demo; import java.util.Map;impo…

bootstrap 取消_学习写个网站(5)Bootstrap学习2

吃了2天烧烤夜宵&#xff0c;还是得讲点自律。【正文】继续bootstrap&#xff0c;还是菜鸟教程。11. 分页就是还有种就是翻页&#xff0c;12. 标签class"label label-default">默认标签</span>label-primarylabel-success13. 警告就是那种可以取消的消息&am…

jdbc mysql user_tab_comments_MySQL学习(五)——使用JDBC完成用户表CRUD的操作

通过案例我们发现“获得连接”和“释放资源”两次代码将在之后的增删改查所有功能中都存在&#xff0c;开发中遇到此种情况&#xff0c;将采用工具类的方法进行抽取&#xff0c;从而达到代码的重复利用。1、使用properties配置文件开发中获得连接的4个参数(驱动、URL、用户名、…

mysql中try的意思_java中try是什么意思

try是Java中的关键字&#xff0c;主要用于异常处理机制&#xff0c;那么它有什么作用呢&#xff1f;try – 用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内&#xff0c;当try语句块内发生异常时&#xff0c;异常就被抛出。它一般与catch..finally组合使用块…

linux用java连接mysql_Java使用JDBC方式连接数据库

开发一个JDBC应用程序&#xff0c;基本需要以下几个步骤&#xff1a;1.把JDBC驱动类装载入Java虚拟机中。使用java.lang.Class类的静态方法forName(String className)实现。例&#xff1a; Class.forName("JDBC驱动类名称")2.加载驱动&#xff0c;并与数据库建立连接…

java web gradle_gradle学习之旅(四) 使用gradle构建简单的java web项目

本节通过一个简单的javaweb项目来体会gradle的使用需求构建一个javaweb项目&#xff0c;搭建jspservlet开发环境可以将需求分解为两步&#xff1a;使用gradle构建一个java项目为该项目构建web视图层工具gradle4.3ideajdk 1.8实验过程首先在idea中创建一个空的gradle项目创建如下…

java 整数 引用传递_关于Java引用传递的一个困惑?

Java的引用(包括基本类型&#xff0c;对象引用类型)在声明、方法调用等时候都会产生新的引用&#xff0c;复制等号右侧的引用。分为下面3种情况&#xff1a;基本类型代表的值存储在引用里面&#xff0c;引用中专门有个区域存储这个值&#xff0c;所以在复制的时候&#xff0c;值…

java fastjson 泛型_解决fastjson泛型转换报错的解决方法

错误信息Exception in thread "main" java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.xh.demo.UserDO泛性类Datapublic class ResultSetDTO {private Integer totalSize;private Integer count;private List records;}实体类…

通达OA header身份认证绕过漏洞复现

通达OA是中国通达公司的一套协同办公自动化软件&#xff0c;通达OA2013&#xff0c;通达OA2016&#xff0c;通达OA2017 存在身份认证绕过漏洞&#xff0c;攻击者可以利用漏洞生成cookie&#xff0c;实现未授权访问。 1.漏洞级别 高危 2.漏洞搜索 fofa title"office An…

leetcode mysql 排名_Leetcode178.分数排名(中等)

题目编写一个 SQL 查询来实现分数排名。如果两个分数相同&#xff0c;则两个分数排名(Rank)相同。请注意&#xff0c;平分后的下一个名次应该是下一个连续的整数值。换句话说&#xff0c;名次之间不应该有“间隔”。-----------| Id | Score |-----------| 1 | 3.50 || 2 | 3.6…

java post 中文乱码问题_java post中文乱码问题

java post中文乱码问题function addcategory() {if (document.myform.category.value "") {alert("商品分类不能为空");return;}//var categorydocument.getElementById("category").value;var c document.myform.category.value;alert(c);wit…

java struct工作原理_Struts2的工作原理(图解)详解

Struts2的工作原理上图来源于Struts2官方站点&#xff0c;是Struts 2 的整体结构。一个请求在Struts2框架中的处理大概分为以下几个步骤(可查看源码&#xff1a;https://github.com/apache/struts):1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求2 这个请求经过一系列的…