JMX监控kafka、Zookeeper和服务器相关指标

488 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

引言

kafka使用越来越多,有些时候很多大数据中心需要了解到一天的流量,还有监控当前kafka的状态是否宕机等等。 本文技术主要从以下几个方面叙述博主学习的时候用到哪些工具和监控指标情况。

  • jmx
  • kafka
  • zookeeper
  • conflument

1.部署kafka和zookeeper组件

  • 部署kafka

解压安装包

tar -xzf kafka_2.11-1.0.0.tgz
#配置config/server.properties
#每一个broker在集群中的唯一表示,要求是正数。当该服务器的IP地址发生改变时,broker.id没有变化,则不会影响consumers的消息情况
broker.id=0
#kafka地址
listeners=PLAINTEXT://xxx.xxx.xxx.xx:19092
#日志地址 log.dirs=/mnt/disk10/pmskafka/kafka_2.11-1.0.0/logs
#连接的zk服务器集群 zookeeper.connect=xxx.xxx.xxx.xx:12181,xxx.xxx.xxx.xx:12181,xxx.xxx.xxx.xx:12181
#设置默认topic消费副本和分区为3 offsets.topic.replication.factor=3 transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
#设置新增topic副本
group.initial.rebalance.delay.ms=3000
delete.topic.enable=true
default.replication.factor=3
#设置分区数
num.partitions=3

  • 部署zookeeper,修改配置文件开启jmx

解压安装包

tar -xzf zookeeper-3.6.1.tar.gz

创建数据文件夹

mkdir -p /mnt/disk10/pmskafka/zookeeper-3.6.1/data
配置zoo.cfg
clientPort=12181
dataDir=/mnt/disk10/pmskafka/zookeeper-3.6.1/data
#server.x的数值与myid中的一致,后面接是zookeeper的三个节点。
#12888端口是集群节点通讯使用
#13888端口是选举leader使用
server.1=221.221.221.10:12888:13888
server.2=221.221.221.11:12888:13888
server.3=221.221.221.12:12888:13888

生成myid

echo "1" >> /mnt/disk10/pmskafka/zookeeper-3.6.1/data/myid
#开启JMX监控 进入bin目录下zkServer.sh文件,在ZOOMAIN中修改成如下参数
ZOOMAIN="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.local.only=false
#当前ip
-Djava.rmi.server.hostname=221.221.221.10
#jmx端口
-Dcom.sun.management.jmxremote.port=12182
-Dcom.sun.management.jmxremote.authenticate=false
#是否开始ssl验证
-Dcom.sun.management.jmxremote.ssl=false
-Dzookeeper.jmx.log4j.disable=true
org.apache.zookeeper.server.quorum.QuorumPeerMain"

2.开启jmx监控

  • 开启kafka监控

进入bin目录下 -daemon是守护进程

JMX_PORT=19093 ./kafka-server-start.sh -daemon ../config/server.properties

3.在Windows页面通过jmx查看远程机器运行情况

  • 键盘同时按住 windows+r 输入如下jconsole

微信截图_20220111142728.png

  • 输入远程服务器地址点击连接

微信截图_20220114111033.png

  • 看到如下页面

微信截图_20220114111306.png