目录
- 背景
- 第一部分 kafka-manager安装
- 第二部分 kafka-manager配置
- 第三部分 kafka-manager管理
- 第四部分 总结
- 参考文献及资料
背景
在Kafka的监控系统中有很多优秀的开源监控系统。比如Kafka-manager,open-faclcon,zabbix等主流监控工具均可直接监控kafka。Kafka集群性能监控可以从消息网络传输,消息传输流量,请求次数等指标来衡量集群性能。这些指标数据可以通过访问kafka集群的JMX接口获取。Kafka-manager工具由Yahoo研发的Kafka管理和监控工具,并在github上开源。
对于非加密Kafka集群配置Kafka manager,目前互联网也有大量的资料。而对于加密集群(特别是云端集群还配置了域名方式),参考材料较为匮乏。本文针对云端加密Kafka集群配置Kafka Manager进行详细介绍,供大家参考。
第一部分 kafka-manager安装
1.1 版本选择
版本使用cmak-3.0.0.0
版本,依赖java11(使用openjdk-11+28_linux-x64_bin.tar.gz
)。使用已经编译好的介质包cmak-3.0.0.0.zip
。假设安装目录为/dmqs
。
1.2 介质部署
1.2.1 部署cmak
上传cmak-3.0.0.0.zip
至安装目录/dmqs
,使用命令解压:
1 | f-itdw-4c8g-100g-11:/dmqs # unzip cmak-3.0.0.0.zip |
1.2.2 部署java
上传openjdk-11+28_linux-x64_bin.tar.gz
介质到/dmqs/cmak-3.0.0.0
路径:
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0 # tar -zxvf openjdk-11+28_linux-x64_bin.tar.gz |
重命名java路径名:
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0 # mv jdk11 jdk |
1.3 配置文件准备
1.3.1 配置application.conf
文件
备份文件并修改:
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0/conf # cp application.conf application.conf.bak |
调整kafka-manager.zkhosts
参数项的配置信息:
1 | kafka-manager.zkhosts="84.10.228.50:2181,84.10.228.55:2181,84.10.228.56:2181" |
1.3.2 加密集群配置jaas
文件
如果是加密集群需要准备jaas
文件,文件名为:kafka_server_jaas.conf
。
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0/conf # touch kafka_server_jaas.conf |
文件内容如下:
1 | KafkaClient { |
上面配置中KafkaClient
为和kafka通信配置;Client
为和zookeeper通信配置。
1.3.3 配置consumer.properties
首先备份:
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0/conf # cp consumer.properties consumer.properties.bak |
配置文件调整为:
1 | security.protocol=PLAINTEXT |
其中注释部分为源配置文件内容。
1.4 准备ca信任证书
对于已经配置为域名方式的Kafka集群需要配置域名信任证书。
创建InstallCert.java
,java程序文件:
1 | /* |
上传至目的目录,并编译:
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0 # /dmqs/cmak-3.0.0.0/jdk/bin/javac InstallCert.java |
编译后生成下面的文件:
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0 # ll |
添加域名(kafka集群配置为域名方式)到jssecacerts
文件中:
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0 # /dmqs/cmak-3.0.0.0/jdk/bin/java InstallCert kafka.itdw.node1:9093 |
这时在当前目录就生成了jssecacerts
文件。如果集群是多节点,需要将其他节点域名信息追加到这个文件中。执行命令即为:
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0 # /dmqs/cmak-3.0.0.0/jdk/bin/java InstallCert kafka.itdw.node2:9093 |
这样就生成了集群所有的节点域名的信任证书。
最后将jssecacerts
文件拷贝至jdk/lib/security
:
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0 # cp jssecacerts jdk/lib/security |
完成所有配置的准备。
1.5 服务启动
完成配置文件准备后,使用下面的命令启动Kafka-manager
服务:
1 | f-itdw-4c8g-100g-11:/dmqs/cmak-3.0.0.0/bin # ./cmak -java-home ../jdk -Djava.security.auth.login.config=../conf/kafka_server_jaas.conf -Dapplication.home=/dmqs/cmak-3.0.0.0 > /dev/null 2>&1 & |
其中参数命令说明如下:
参数
-java-home
指定服务启动的java依赖环境目录;参数
-Djava.security.auth.login.config
指定和kafka和zookeeper交互的jaas文件路径;- 参数
-Dapplication.home
指定了应用的主目录; - 参数
-Dhttp.port=8888
指定了应用的监听端口,默认9000; - 参数
-Dconfig.file=../conf/application.conf
指定了应用的应用配置文件;
启动后应用目录下面生成logs
目录,作为日志存放目录。启动命令不指定端口的情况下,默认监听9000
端口。
1.6 自动化脚本
为了提高服务运维管理,对服务启停进行自动化管理。
1 | !/bin/bash -e |
对于启动命令,可以自定义修改。
第二部分 kafka-manager配置
2.1 创建新集群管理
创建新的管理集群,需要填入下面的信息:
Cluster Name
集群名称;
Cluster Zookeeper Hosts
配置kafka集群背后的zookeeper集群的信息。例如:192.168.1.1:2181;
Kafka Version
Kafka的版本信息;
Enable JMX Polling (Set JMX_PORT env variable before starting kafka server)
是否启用集群的监控组件。
Security Protocol
安全协议。目前支持:SSL、SASL_PLAINTEXT、SASL_SSL、PLAINTEXT
SASL Mechanism (only applies to SASL based security)
SASL的权限管理协议:DEFAULT、PLAIN、GSSAPI、SCRAM-SHA-256、SCRAM-SHA-512
SASL JAAS Config (only applies to SASL based security)
SASL的用户配置信息。例如:
1
org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret";
需要注意的是配置以分号结束,否则会报错。
第三部分 kafka-manager管理
Kafka Manager服务启动后,默认监听9000端口,所以服务URL地址为:http://102.168.1.1:9000
。目前组件支持的管理功能有:
- 管理多个集群
- 轻松检查集群状态(主题,使用者,偏移量,代理,副本分发,分区分发)
- 运行首选副本选择
- 生成带有选项的分区分配,以选择要使用的代理
- 运行分区的重新分配(基于生成的分配)
- 使用可选的主题配置创建主题(0.8.1.1与0.8.2+具有不同的配置)
- 删除主题(仅在0.8.2+上受支持,并记住在代理配置中设置delete.topic.enable = true)
- 现在,主题列表指示标记为删除的主题(仅在0.8.2+上受支持)
- 批量生成多个主题的分区分配,并可以选择要使用的代理
- 批量运行分区的多个主题的重新分配
- 将分区添加到现有主题
- 更新现有主题的配置
- (可选)为代理级别和主题级别的度量启用JMX轮询。
- (可选)过滤出在Zookeeper中没有id / owner /&offsets /目录的使用者。
对于具体的组件使用,可以参文献中的[3]。
参考文献及资料
1、kafka-manager项目地址,链接:https://github.com/yahoo/kafka-manager
2、kafka-manager项目下载地址,链接:https://blog.wolfogre.com/posts/kafka-manager-download/
3、Apache Kafka集群管理工具CMAK(Cluster Manager for Apache Kafka)从安装启动到配置使用,链接:http://www.luyixian.cn/news_show_324464.aspx