尽管之前,已使用docker安装过,但 感觉有个WEB UI,还是清新些~
这里有个小细节没有搞定,就是kafka启用rmi jmx给kafka eagle作监控性能之后,kafka-console-producer.sh --broker-list 192.168.1.111:9092 --topic test这些脚本就会报端口已被占用的问题,那我只好先屏蔽这个功能,这样就能用命令行来测试。
当然,也可以开端JMX端口,这样就只能用WEB UI来测试生产者和消费者了,权衡吧,如果有时间,把原理搞清楚,两边都能用起来,那就是最好的学习方案了。
docker-compose.yml文件内容
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zk
restart: always
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
container_name: kfk
restart: always
depends_on:
- zookeeper
ports:
- "9092:9092"
# - "9998:9998"
expose:
- "9093"
environment:
KAFKA_BROKER_ID: 0
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.1.111:9092
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
# KAFKA_JMX_OPTS: "-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.1.111 -Dcom.sun.management.jmxremote.rmi.port=9998"
# JMX_PORT: 9998
# KAFKA_CREATE_TOPICS: "test:1:1"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
kafka-eagle:
image: gui66497/kafka_eagle
container_name: ke
restart: always
depends_on:
- kafka
ports:
- "8048:8048"
environment:
ZKSERVER: "zookeeper:2181"
volumes:
- ./system-config.properties:/kafka-eagle/conf/system-config.properties
- ./logs:/kafka-eagle/logs
这里,docker-compose.yml还挂载了 个system-config.properties文件,内容如下:
######################################
# multi zookeeper&kafka cluster list
######################################
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=zookeeper:2181
######################################
# zk client thread limit
######################################
kafka.zk.limit.size=25
######################################
# kafka eagle webui port
######################################
kafka.eagle.webui.port=8048
######################################
# kafka offset storage
######################################
cluster1.kafka.eagle.offset.storage=kafka
######################################
# enable kafka metrics
######################################
kafka.eagle.metrics.charts=true
kafka.eagle.sql.fix.error=false
######################################
# kafka sql topic records max
######################################
kafka.eagle.sql.topic.records.max=5000
######################################
# alarm email configure
######################################
kafka.eagle.mail.enable=false
kafka.eagle.mail.sa=sa@163.com
kafka.eagle.mail.username=sa@163.com
kafka.eagle.mail.password=mq
kafka.eagle.mail.server.host=smtp.163.com
kafka.eagle.mail.server.port=25
######################################
# alarm im configure
######################################
#kafka.eagle.im.dingding.enable=true
#kafka.eagle.im.dingding.url=https://oapi.dingtalk.com/robot/send?access_token=
#kafka.eagle.im.wechat.enable=true
#kafka.eagle.im.wechat.token=https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxx&corpsecret=xxx
#kafka.eagle.im.wechat.url=https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=
#kafka.eagle.im.wechat.touser=
#kafka.eagle.im.wechat.toparty=
#kafka.eagle.im.wechat.totag=
#kafka.eagle.im.wechat.agentid=
######################################
# delete kafka topic token
######################################
kafka.eagle.topic.token=admin
######################################
# kafka sasl authenticate
######################################
cluster1.kafka.eagle.sasl.enable=false
cluster1.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster1.kafka.eagle.sasl.mechanism=PLAIN
cluster2.kafka.eagle.sasl.enable=false
cluster2.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster2.kafka.eagle.sasl.mechanism=PLAIN
######################################
# kafka jdbc driver address
######################################
kafka.eagle.driver=org.sqlite.JDBC
kafka.eagle.url=jdbc:sqlite:/kafka-eagle/db/ke.db
kafka.eagle.username=root
kafka.eagle.password=root
访问http://192.168.1.111:8048/ke/,用户/密码:admin/123456,除了metric,其它都好好的呢~