kafka manager是常用的kafka监控,ui界面操作简单,信息全面,使用广泛。
当我们基于docker部署zookeeper, kafka系列组件时,希望能够自动添加相关的集群监控,避免手动操作。
我们进入kafka-manager的container可以发现如下url描述文件:/kafka-manager/conf/routes,该文件描述了kafka-manager相关的rest api。
使用rest api创建topic时,需要在url中描述所需的全部参数,否则创建失败,经过测试,可用的curl如下:
curl [myhost]:[myport]/clusters --data "name=[mycluster]&zkHosts=[myzookeeper]&kafkaVersion=[mykafkaversion]&jmxEnabled=true&jmxUser=&jmxPass=&pollConsumers=true&activeOffsetCacheEnabled=true&tuning.brokerViewUpdatePeriodSeconds=30&tuning.clusterManagerThreadPoolSize=2&tuning.clusterManagerThreadPoolQueueSize=100&tuning.kafkaCommandThreadPoolSize=2&tuning.kafkaCommandThreadPoolQueueSize=100&tuning.logkafkaCommandThreadPoolSize=2&tuning.logkafkaCommandThreadPoolQueueSize=100&tuning.logkafkaUpdatePeriodSeconds=30&tuning.partitionOffsetCacheTimeoutSecs=5&tuning.brokerViewThreadPoolSize=4&tuning.brokerViewThreadPoolQueueSize=1000&tuning.offsetCacheThreadPoolSize=4&tuning.offsetCacheThreadPoolQueueSize=1000&tuning.kafkaAdminClientThreadPoolSize=4&tuning.kafkaAdminClientThreadPoolQueueSize=1000&tuning.kafkaManagedOffsetMetadataCheckMillis=30000&tuning.kafkaManagedOffsetGroupCacheSize=1000000&tuning.kafkaManagedOffsetGroupExpireDays=7&securityProtocol=PLAINTEXT&saslMechanism=DEFAULT" -X POST > /dev/null
将上述url中的[]部分替换为环境中相应配置即可。
注意curl的返回结果为一个html,可以将其忽略,判断status code。
正确解决方案的参考链接如下:
How to create a cluster in Kafka Manager using cURL - Geeky Hacker