前言
近期在公司項目需要到kafka,但發現卻沒有監控,且是安裝docker的kafka,想查看消息是否積壓還得進容器查看。於是整了個這,有點坎坷,不過滿滿的成就。
目前爲止,國內外搜遍了,kafkaOffsetMonitor 都沒發現有docker版本的kafka新版監控的鏡像,算是個開山吧!
gitHub地址:https://github.com/chenchaoyun0/docker-kafka-offset-monitor
主流kafka監控
- Kafka Web Conslole
程序運行後,會定時去讀取kafka集羣分區的日誌長度,讀取完畢後,連接沒有正常釋放,一段時間後產生大量的socket連接,導致網絡堵塞,所以不建議使用。
- Kafka Manager
還有一個是:https://github.com/sheepkiller/kafka-manager-docker,這兩款不知道是不是我安裝的問題,消費組有時候讀不到,看不到消費。在kafka-manager 上能對kafka做一些分區調整的操作,但想看消息消費的情況不是很方便
- KafkaOffsetMonitor
源碼:https://github.com/chenchaoyun0/kafka-offset-monitor。其實也就是多提了十來個樣式文件
kafka新的版本offset存儲在自己的一個topic,不像老版本是存在zookeeper裏面,所以用KafkaOffsetMonitor2.x的版本監控會有問題,根本監控不到數據,所以最好在github上面下載最新的版本自己編譯,注意jdk爲1.8版本
搭建步驟
1. 構建本地docker 鏡像
git clone https://github.com/chenchaoyun0/docker-kafka-offset-monitor.git
進入到目錄,修改docker-build.sh 腳本,爲你自己想要命名的鏡像,執行docker build腳本
2. 執行build腳本
sh docker-build.sh
docker images
就會看到鏡像構建完成
3. 編寫docker-compose.yml,需要配置環境變量爲自己的kafka和zookeeper地址
version: '2'
services:
kafka-offset-monitor:
image: 39.105.33.58:5000/kafka-offset-monitor:1.0
volumes:
- "./logs/:/u01/app/kafka-offset-monitor/logs/"
ports:
- "8086:8086"
environment:
ZK_HOSTS: 39.105.33.58:2181
KAFKA_BROKERS: 39.105.33.58:23310
REFRESH_SECENDS: 10
RETAIN_DAYS: 2
4. 啓動容器
docker-compose up -d
5. 查看啓動日誌,本地logs也有個日誌
docker-compose logs -f
6. 訪問 http://IP:8086 即可看到黑底色的監控頁面啦
點擊 消費組名稱即可看到消費詳情
點擊topic 名稱可查看消息當前消費與寫入的速度
總結
待補充