大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle

简介: 大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

Hadoop(已更完)

HDFS(已更完)

MapReduce(已更完)

Hive(已更完)

Flume(已更完)

Sqoop(已更完)

Zookeeper(已更完)

HBase(已更完)

Redis (已更完)

Kafka(正在更新…)

章节内容

上节我们完成了如下的内容:


Kafka 集群模式搭建

Kafka 集群模式的应用场景

实机云服务器搭建

6d2444c0a9e48f2ad70412545587961e_47e39d43078e4fe79895b0a9859372a9.png 监控度量指标

Kafka使用Yammer Metrics在服务器和Scala客户端中报告指标,Java客户端使用Kafka Metrics,它是一种内置的度量标准注册表,可最大程度的减少拉入客户端应用程序的传递依赖项。

两者都通过JMX公开指标,并且可以配置为使用可插拔的统计报告器报告统计信息,以连接到你的监控系统中。


JMX

export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote \
                       -Dcom.sun.management.jmxremote.port=9999 \
                       -Dcom.sun.management.jmxremote.authenticate=false \
                       -Dcom.sun.management.jmxremote.ssl=false \
                       -Djava.rmi.server.hostname=${服务器的IP,尽量写IP,不要hostname或者域名}"

接着我们启动Kafka:

kafka-server-start.sh /opt/servers/kafka_2.12-2.7.2/config/server.properties

JConsole

在本机上启动 jconsole 服务,我们运行如下指令:(本机要有JDK)

启动窗口如下图所示:

我们输入Kafka的地址和端口:

连接成功之后页面如下图:

我们选择 MBean 选项卡:

可以看到对应的数据情况:

详细监控指标

http://kafka.apache.org/10/documentation.html#monitoring

OS监控项

Broker指标

Producer和Topic指标

Consumer指标

获取监控指标

我们可以通过编程的方式来获取到Kafka的指标信息:

编写代码

package icu.wzk.kafka;

import javax.management.MBeanServerConnection;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import java.util.Iterator;
import java.util.Set;

public class JMXMonitorDemo {

    public static void main(String[] args) throws Exception {
        String jmxServiceUrl = "service:jmx:rmi:///jndi/rmi://h121.wzk.icu:9999/jmxrmi";
        JMXServiceURL jmxUrl = null;
        JMXConnector jmxc = null;
        MBeanServerConnection jmxs = null;
        ObjectName mbeanObjectName = null;
        Iterator sampleIter = null;
        Set sampleSet = null;

        // 创建JMXServiceURL 对象
        jmxUrl = new JMXServiceURL(jmxServiceUrl);
        // 建立指定的URL服务器的连接
        jmxc = JMXConnectorFactory.connect(jmxUrl);
        // 返回代表远程MBean服务器的MBeanServiceConnection对象
        jmxs = jmxc.getMBeanServerConnection();
        // 根据传入的字符串,创建ObjectName对象
        mbeanObjectName = new ObjectName("kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec");
        // 指定ObjectName对应的MBeans
        sampleSet = jmxs.queryMBeans(null, mbeanObjectName);
        // 迭代器
        sampleIter = sampleSet.iterator();
        if (!sampleSet.isEmpty()) {
            // 如果返回了 则打印信息
            while (sampleIter.hasNext()) {
                ObjectInstance sampleObject = (ObjectInstance) sampleIter.next();
                ObjectName objectName = sampleObject.getObjectName();
                // 查看指定MBean指定属性的值
                String count = jmxs.getAttribute(objectName, "Count").toString();
                System.out.println("count: " + count);
            }
        }
        // 关闭
        jmxc.close();
    }
}

运行测试

控制台输出结果如下:

Kafka Eagle

我们可以使用 kafka-eagle 管理 Kafka集群。


核心模块

面板可视化

主题管理,包含创建主题、删除主题、主题列举、主题配置、主题查询

消费者应用:对不同消费者应用进行监控,包含KafkaAPI、FlinkAPI、SparkAPI、StormAPI、FlumeAPI、LogStashAPI等等

集群管理:包含对Kafka集群和ZooKeeper集群的详情展示,其内容包含Kafka启动时间、Kafka端口号、ZooKeeperLeader角色等。同时,还有多集群切换管理,ZooKeeperClient操作入口

集群监控:包含对Broker、Kafka核心指标、ZooKeeper核心指标进行监控,并绘制历史趋势图

告警功能:对消费者应用数据积压情况进行告警,以及对Kafka和ZooKeeper监控度进行告警,同时,支持邮件、微信、钉钉告警通知

系统管理:包含用户创建、用户角色分配、资源访问进行管理

整体架构

可视化:负责展示主题列表、集群健康、消费应用等

采集器:数据采集的来源包含ZooKeeper、Kafka JMX & 内部Topic、KafkaAPI(2.x以后版本)

数据存储:目前Kafka Eagle存储采用MySQL或SQLite,数据库和表的创建均是自动完成的,按照官方文档配置好即可,启动Kafka Eagle就会自动创建,用来存储元数据和监控数据

监控:负责见消费者应用消费情况,集群健康状态

告警:对监控到的异常进行告警通知,支持邮件、微信、钉钉等方式

权限管理:对访问用户进行权限管理,对于管理员、开发者、访问者等不同角色的用户,分配不用的访问权限

下载项目

# Github 地址
# https://github.com/smartloli/EFAK

wget https://github.com/smartloli/kafka-eagle-bin/archive/v3.0.1.tar.gz
mv v3.0.1.tar.gz kafka-eagle-v3.0.1.tar.gz
tar -zxvf kafka-eagle-v3.0.1.tar.gz
cd kafka-eagle-bin-3.0.1/
tar -zxvf efak-web-3.0.1-bin.tar.gz
mv efak-web-3.0.1/ /opt/servers/

下载过程如下图所示:

整理好的项目如下所示:

配置项目

cd /opt/servers/efak-web-3.0.1
• 1

修改配置文件

vim conf/system-config.properties

文件按照自己的需要修改,我这里修改了部分:

efak.zk.cluster.alias=cluster1
cluster1.zk.list=h121.wzk.icu:2181,h122.wzk.icu:2181,h123.wzk.icu:2181
######################################
# kafka sqlite jdbc driver address
######################################
efak.driver=org.sqlite.JDBC
efak.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db
efak.username=root
efak.password=www.kafka-eagle.org

# 我注释掉了MySQL

此时我们需要新建一个文件夹:

mkdir -p /hadoop/kafka-eagle/db/

环境变量

vim /etc/profile

# efak
export KE_HOME=/opt/servers/efak-web-3.0.1
export PATH=$PATH:$KE_HOME/bin

启动服务

./bin/ke.sh start

启动我们的服务,如下图所示:

访问服务

http://h121.wzk.icu:8048

admin
123456

运行结果如下图所示:

打开之后,填写账号密码:

62a5074764c700da30745cd2af92d3f1_c744df43845d4133b81d0531021f6b8d.png

目录
相关文章
|
9月前
|
数据可视化 搜索推荐 大数据
基于python大数据的北京旅游可视化及分析系统
本文深入探讨智慧旅游系统的背景、意义及研究现状,分析其在旅游业中的作用与发展潜力,介绍平台架构、技术创新、数据挖掘与服务优化等核心内容,并展示系统实现界面。
|
10月前
|
机器学习/深度学习 数据采集 数据可视化
Java 大视界 -- 基于 Java 的大数据可视化在城市空气质量监测与污染溯源中的应用(216)
本文探讨Java大数据可视化在城市空气质量监测与污染溯源中的创新应用,结合多源数据采集、实时分析与GIS技术,助力环保决策,提升城市空气质量管理水平。
Java 大视界 -- 基于 Java 的大数据可视化在城市空气质量监测与污染溯源中的应用(216)
|
9月前
|
存储 数据可视化 数据挖掘
基于大数据的电影可视化、推荐与票房预测系统
本系统基于Python与Flask框架,结合Echarts等技术,实现电影数据的采集、存储与可视化展示。通过对票房、评分、评论等数据的分析,生成图表与词云,帮助用户直观理解电影市场趋势,支持决策制定与观影推荐,提升电影行业的数据分析能力与用户体验。
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
10月前
|
存储 监控 数据可视化
Java 大视界 -- 基于 Java 的大数据可视化在企业生产运营监控与决策支持中的应用(228)
本文探讨了基于 Java 的大数据可视化技术在企业生产运营监控与决策支持中的关键应用。面对数据爆炸、信息孤岛和实时性不足等挑战,Java 通过高效数据采集、清洗与可视化引擎,助力企业构建实时监控与智能决策系统,显著提升运营效率与竞争力。
|
9月前
|
数据可视化 数据挖掘 大数据
基于python大数据的水文数据分析可视化系统
本研究针对水文数据分析中的整合难、分析单一和可视化不足等问题,提出构建基于Python的水文数据分析可视化系统。通过整合多源数据,结合大数据、云计算与人工智能技术,实现水文数据的高效处理、深度挖掘与直观展示,为水资源管理、防洪减灾和生态保护提供科学决策支持,具有重要的应用价值和社会意义。
|
9月前
|
机器学习/深度学习 搜索推荐 数据可视化
基于python大数据的音乐可视化与推荐系统
本研究基于Python实现音乐数据采集、清洗、分析与可视化,并结合协同过滤算法构建个性化推荐系统。通过Echarts展示音乐热度及用户偏好,提升用户体验,助力音乐产业智能化发展。
|
10月前
|
搜索推荐 算法 Java
基于大数据的旅游可视化及推荐系统
本项目围绕数字化旅游系统的开发与应用展开研究,结合SpringBoot、Layui、MySQL、Java等技术,构建基于协同过滤算法的智能推荐系统。内容涵盖项目背景、研究现状、开发工具及功能结构,旨在提升旅游体验与管理效率,推动旅游业数字化转型。