请选择 进入手机版 | 继续访问电脑版

CMAK(Kafka-Manager)安装部署说明,实现Kafka集群的JMX监控

[复制链接]
茂忠想你 发表于 2020-12-31 20:24:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
本文主要报告对于启用了SASL_PLAINTEXT用户名暗码模式的Kafka,如何安装摆设雅虎的CMAK(即Kafka-Manager),而且支持Kafka集群的JMX监控及检察消费者信息。
软件情况:


  • 操作系统:centos 7.7 x64
  • Zookeeper:3.5.5
  • Kafka:2.4.0
准备工作:

这样操作之后,CMAK的目次为/usr/local/cmak-3.0.0.5,JDK11的目次为/usr/java/jdk-11.0.9。
设置及启动:
CMAK主要有两个设置文件需要修改,都位于conf目次下,分别是application.conf和consumer.properties
application.conf主要修改此中Zookeeper设置的几行,此中3行使用#注释,一行改为Zookeeper集群的地点,格式如下:
  1. #kafka-manager.zkhosts="kafka-manager-zookeeper:2181"#kafka-manager.zkhosts=${?ZK_HOSTS}cmak.zkhosts="kafka01:2181,kafka02:2181,kafka03:2181"#cmak.zkhosts=${?ZK_HOSTS}
复制代码
consumer.properties主要修改安全协议的内容,将整个文件的内容改为如下代码即可:
  1. security.protocol=SASL_PLAINTEXTsasl.mechanism=PLAINkey.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializervalue.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer
复制代码
别的,在conf目次下新建一个文件kafka_client_jaas.conf,用来指定kafka的用户名暗码,其内容如下,用户名暗码应与kafka设置中的一致:
  1. KafkaClient {        org.apache.kafka.common.security.plain.PlainLoginModule required        username="admin"        password="1234567890";};
复制代码
然后,即可用如下下令启动CMAK了,不外此时启动的CMAK,无论是JMX监控还是消费者列表都是无法加载出来的
  1. nohup /usr/local/cmak-3.0.0.5/bin/cmak  -java-home /usr/java/jdk-11.0.9/ -Dconfig.file=/usr/local/cmak-3.0.0.5/conf/application.conf -Dhttp.port=8080 >/usr/local/cmak-3.0.0.5/logs/cmak.log 2>/usr/local/cmak-3.0.0.5/logs/cmak-error.log &
复制代码
启动后,即可在欣赏器中使用http://ip:8080/访问CMAK网站了,界面如下:
     
     CMAK主页界面    接下来,需要解决JMX监控和消费者列表加载的问题
点击页面上的Modify按钮,进入设置界面,修改图中2项设置,并到最下方给设置SASL JAAS Config中的username和password的值加上单引号,生存后就可以将消费者列表加载出来了
     
     JMX设置等        
     SASL JAAS Config    至于JMX,如果服务器的防火墙是关闭的,那么此时应该可以加载出集群的所有数据流量信息了,如果防火墙是打开的,那么还需修改Kafka自己的设置
修改Kafka设置:
许多文章都会告诉你,需要修改kafka-server-start.sh,设置JMX_PORT为9999,然后设置防火墙开启9999端口,即可实现JMX监听
但实在是不可的,因为JMX这个9999的端口,只是一个侦听端口,它在9999这个端口侦听到请求后,会分配一个随机的RMI端口,让请求方去访问,如果防火墙不是关闭状态的话,那么这个随机端口是无论如何也不会被防火墙通过的
所以,我们实在还需要将这个随机的RMI端口也固定,具体操作如下:
修改Kafka的bin目次下的2个文件,kafka-run-class.sh和kafka-server-start.sh
kafka-run-class.sh增加一段,加在JMX port的背面即可,代码如下:
  1. # JMX rmi port to useif [  $JMX_RMI_PORT ]; then  KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_RMI_PORT "fi
复制代码
kafka-server-start.sh在if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then这一段中增加2行代码,将JMX的端口设为9999,JMX RMI的端口设为9998,代码如下:
  1. if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then    export KAFKA_HEAP_OPTS="-Xmx4G -Xms1G -Djava.security.auth.login.config=/usr/local/kafka/config/kafka_server_jaas.conf"    export JMX_PORT="9999"    export JMX_RMI_PORT="9998"fi
复制代码
防火墙增加对9999和9998端口的开放:
  1. firewall-cmd --permanent --add-port=9998/tcpfirewall-cmd --permanent --add-port=9999/tcp
复制代码
重启Kafka和防火墙,CMAK即可监控整个集群的数据流量情况了:
     
     Brokers详情     

来源:https://blog.csdn.net/player2135/article/details/111869191
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )