Kafka運(yùn)維小貼士 | Kafka 消息監(jiān)控
點(diǎn)擊上方藍(lán)色字體,選擇“設(shè)為星標(biāo)”

筆者經(jīng)常遇到一些無(wú)法優(yōu)化的慢查詢,面對(duì)這樣的慢查詢,筆者會(huì)將其進(jìn)行預(yù)先計(jì)算存儲(chǔ)到mongodb或者elasticsearch中。這個(gè)業(yè)務(wù)場(chǎng)景需要將mysql的binlog數(shù)據(jù)發(fā)送到kafka,然后訂閱kafka并消費(fèi)其中的binlog數(shù)據(jù)以實(shí)現(xiàn)實(shí)時(shí)加速查詢。但是消費(fèi)binlog就可能會(huì)有很多意外發(fā)生,比如mysql數(shù)據(jù)庫(kù)發(fā)生死鎖,或者消費(fèi)發(fā)生并發(fā)問(wèn)題,網(wǎng)絡(luò)長(zhǎng)時(shí)間阻塞,這些狀況都會(huì)導(dǎo)致kafka消費(fèi)發(fā)生阻塞,一旦發(fā)生阻塞,用戶從mongodb或者elasticsearch中就會(huì)查詢不到最新的mysql數(shù)據(jù),所以筆者需要監(jiān)控kafka中消息的消費(fèi)情況,監(jiān)控的方案有很多,筆者進(jìn)行了整理,以便日后回顧。
kafka-consumer-groups
kafka-consumer-groups.sh是kafka自帶的工具,它位于kafka安裝目錄的bin目錄下,它不需要額外下載安裝,使用起來(lái)非常方便
通過(guò)如下命令,我們可以查看kafka的所有消費(fèi)組
./kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list它的輸出如下所示,可以看到其中有一個(gè)Test-Group的消費(fèi)組

我們可以通過(guò)如下方式查看某個(gè)消費(fèi)組的消費(fèi)情況
./kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --describe --group Test-Group輸出結(jié)果如下

上述涉及的幾個(gè)字段意義如下
TOPIC:主題名字
PARTITION:分區(qū)id
CURRENT-OFFSET:已經(jīng)提交的消費(fèi)位移
LOG-END-OFFSET:總數(shù)據(jù)量
LAG:未消費(fèi)的數(shù)據(jù)量
CONSUMER-ID:代表消費(fèi)者id,為空代表當(dāng)前沒(méi)有消費(fèi)者
HOST:消費(fèi)者主機(jī)ip,為空代表當(dāng)前沒(méi)有消費(fèi)者
CLIENT-ID:客戶端id,為空代表當(dāng)前沒(méi)有消費(fèi)者
kafka-manager
kafka-manager要比kafka-consumer-groups工具強(qiáng)大的多,它不僅可以用于查看消費(fèi)者消費(fèi)情況,同時(shí)可以管理Topic,包括創(chuàng)建topic,管理partition。
從下面地址下載kafka-manager的安裝包
http://github.com/yahoo/kafka-manager/releases
解壓并進(jìn)入kafka安裝目錄,使用sbt進(jìn)行編譯,sbt需要配置源,否則編譯速度非常慢
sbt clean dist將編譯好的zip格式文件復(fù)制出來(lái),解壓縮,修改conf目錄下的application.conf文件,修改zookeeper地址參數(shù)kafka-manager.zkhosts,在bin目錄下執(zhí)行./kafka-manager命令,kafka默認(rèn)端口是9000,進(jìn)入管理頁(yè)面之后配置kafka節(jié)點(diǎn)相關(guān)信息,就能監(jiān)控kafka運(yùn)行情況
如下是kafka-manager的管理界面
查看所有的消費(fèi)組

Broker管理的partition列表

某個(gè)消費(fèi)組消費(fèi)某個(gè)topic的消費(fèi)狀況


版權(quán)聲明:
文章不錯(cuò)?點(diǎn)個(gè)【在看】吧!??




