自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文聊透如何監(jiān)控 Kafka 服務(wù)

云計(jì)算 Kafka
今天我們來(lái)講解幾款 Kafka 常用可視化監(jiān)控工具,主要有以下幾個(gè) 「JConsole」、「Kafka Manager」、「Kafka Offset Explorer」、「KafkaOffsetMonitor」、「LogiKM」。

大家好,我是 華仔, 又跟大家見面了。

對(duì)于 Kafka 來(lái)說(shuō),監(jiān)控始終是一個(gè)難題。目前,沒有一款免費(fèi)監(jiān)控軟件能夠滿足大部分用戶需求,這些監(jiān)控軟件各有特色但都不夠全面。

今天我們來(lái)講解幾款 Kafka 常用可視化監(jiān)控工具,主要有以下幾個(gè) 「JConsole」、「Kafka Manager」、「Kafka Offset Explorer」、「KafkaOffsetMonitor」、「LogiKM」。

這里說(shuō)明下,第一個(gè)「Jconsole」是基于 JMX 的可視化監(jiān)控管理工具,安裝好 JDK 之后,Java 就提供了 JConsole 客戶端工具,利用它可以監(jiān)控 Kafka 的各項(xiàng)指標(biāo)。其他幾個(gè)都是專門用來(lái) Kafka 集群管理與監(jiān)控的。

下面分別介紹下這幾款監(jiān)控工具的使用。

一、JConsole

這里先簡(jiǎn)單的介紹一下 JMX,全稱:Java Manangement Extensions。JMX 可以管理、監(jiān)控正在運(yùn)行中的 Java 程序,常用來(lái)管理「線程」、「內(nèi)存」、「日志Level」、「服務(wù)重啟」、「系統(tǒng)環(huán)境」等,由于 kafka 底層也是 基于 Java,所以也可以使用 JMX 標(biāo)準(zhǔn)來(lái)管理和監(jiān)控 Kafka。

JConsole 是一種基于 JMX 的可視化監(jiān)控和管理工具,從 Java 5 開始被引入, 用來(lái)監(jiān)控 VM,總體來(lái)說(shuō), 它是社區(qū)自帶的一個(gè)小工具,對(duì)于一般簡(jiǎn)單的監(jiān)控場(chǎng)景,它還能應(yīng)付,但是它畢竟功能有限,復(fù)雜的監(jiān)控整體解決方案,還是要依靠監(jiān)控框架。

  1. 修改 kakfa-server-start.sh 腳本的 JXM_PORT 配置,如下圖:
export JMX_PORT="9999"

圖片

  1. 這里我們直接在 windows 上啟動(dòng) JConsole,在 CMD 命令行中輸入 JConsole 并回車, 如下圖:

圖片

此時(shí)會(huì)調(diào)起 JConsole 的啟動(dòng)界面。

圖片

當(dāng)彈出 "安全連接失敗" 提示框,選擇 "不安全的連接" 按鈕, 進(jìn)入 JConsole 監(jiān)控的主界面, 如下圖所示:

圖片

圖片

圖片

圖片

二、KafkaManager

Kafka Manager 是 yahoo 在 2015 年開源的一款 Kafka 監(jiān)控軟件,底層使用 Scala 語(yǔ)言編寫,用來(lái)管理和監(jiān)控 Kafka 集群。

這款軟件是眾多 Kafka 監(jiān)控軟件中的翹楚,無(wú)論是界面展示內(nèi)容的豐富程度,還是管理集群功能的全面性,Kafka Manager 都數(shù)一數(shù)二。

目前 Kafka Manager 已經(jīng)支持監(jiān)控新版本 Consumer,如果用戶在使用 Kafka Manager 時(shí)無(wú)法看到新版本的 Consumer Group  信息,那么就需要檢查一下是否使用了過(guò)舊版本的 Kafka Manager。

這個(gè)管理工具可以很容易地發(fā)現(xiàn)分布在集群中的哪些 topic 分布不均勻,或者是分區(qū)在整個(gè)集群分布不均勻的的情況。

它支持管理多個(gè)集群、選擇副本、副本重新分配以及創(chuàng)建 Topic。同時(shí),這個(gè)管理工具也是一個(gè)非常好的可以快速瀏覽這個(gè)集群的工具,有如下功能:

  1. 管理多個(gè)kafka集群。
  2. 便捷的檢查kafka集群狀態(tài)(topics,brokers,備份分布情況,分區(qū)分布情況)。
  3. 選擇你要運(yùn)行的副本。
  4. 基于當(dāng)前分區(qū)狀況進(jìn)行。
  5. 可以選擇topic配置并創(chuàng)建topic(0.8.1.1和0.8.2的配置不同)。
  6. 刪除topic(只支持0.8.2以上的版本并且要在broker配置中設(shè)置delete.topic.enable=true)。
  7. Topic list會(huì)指明哪些topic被刪除(在0.8.2以上版本適用)。
  8. 為已存在的topic增加分區(qū)。
  9. 為已存在的topic更新配置。
  10. 在多個(gè)topic上批量重分區(qū)。
  11. 在多個(gè)topic上批量重分區(qū)(可選partition broker位置)。

kafka-manager 項(xiàng)目地址:https://github.com/yahoo/kafka-manager

本文我們使用版本:kafka-manager-3.0.0.5.zip,項(xiàng)目已改名位 CMAK,其安裝和配置非常簡(jiǎn)單,可以按照下面的步驟配置 Kafka Manager。

1、在啟動(dòng) Kafka 集群的命令腳本中,增加 JMX 的相關(guān)參數(shù),否則無(wú)法使用客戶端工具管理和監(jiān)控 Kafka 集群。這里我們以本地虛擬機(jī)為例。

2、修改 Kafka-run-class.sh 文件,找到 JMX settings 的配置位置,增加 JMX Server 的配置信息。

#此處可以改為自己的hostname
-Djava.rmi.server.hostname=LAPTOP-3B77RHGG

圖片

3、修改 kakfa-server-start.sh 腳本的 JXM_PORT 配置,如下圖:

export JMX_PORT="9999"

圖片

4、啟動(dòng) kafka。

bin/kafka-server-start.sh config/server.properties &

5、下載 Kafka Manager,并解壓到 /home/wangjianghua/src/ 目錄下。

# github地址
https://github.com/yahoo/CMAK
# 下載版本 kafka-manager-3.0.0.5
wget https://github.com/yahoo/CMAK/releases/download/3.0.0.5/cmak-3.0.0.5.zip
# 解壓文件
unzip cmak-3.0.0.5.zip

6、修改配置,進(jìn)入 Kafka Manager 的 conf 目錄,修改 application.conf 文件。

# 這里是指定 zookeeper 集群的地址,如果有多個(gè),逗號(hào)隔開
cmak.zkhosts="localhost:2181"

7、啟動(dòng) Kafka Manager 。

# nohup 方式
nohup bin/cmak &
# 指定參數(shù)方式啟動(dòng)  默認(rèn)啟動(dòng)端口 9000
nohup bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=9000 &

8、啟動(dòng)成功后,輸出如下日志信息。

圖片

我們使用 bin/cmak 這個(gè)命令來(lái)啟動(dòng),會(huì)使用默認(rèn)配置文件和端口號(hào)9000。

啟動(dòng)完畢后可以查看端口是否啟動(dòng),由于啟動(dòng)過(guò)程需要一段時(shí)間,端口起來(lái)的時(shí)間可能會(huì)延后。

從日志中可以看出, Kafka Manager 將運(yùn)行在 9000 端口上,使用ip地址:端口訪問(wèn)測(cè)試。

圖片

可以看到,此時(shí)已經(jīng)啟動(dòng)成功了。

如果報(bào)如下錯(cuò)誤,請(qǐng)升級(jí)jdk版本到11。

圖片

1、測(cè)試 KafkaManager

(1)新建 Cluster

點(diǎn)擊【Cluster】>【Add Cluster】打開如下添加集群的配置界面:

輸入集群的名字(如Kafka-Cluster-1)和 Zookeeper 服務(wù)器地址(如localhost:2181),選擇最接近的Kafka版本(如2.7)

注意:如果沒有在 Kafka 中配置過(guò) JMX_PORT,千萬(wàn)不要選擇第一個(gè)復(fù)選框。Enable JMX Polling 如果選擇了該復(fù)選框,Kafka-manager 可能會(huì)無(wú)法啟動(dòng)。

其他 broker 相關(guān)的配置可以根據(jù)自己需要進(jìn)行配置,默認(rèn)情況下,點(diǎn)擊【保存】時(shí),會(huì)提示幾個(gè)默認(rèn)值為1的配置錯(cuò)誤,需要配置為>=2的值。提示如下:

圖片

新建完成后,運(yùn)行界面如下:

圖片

圖片

圖片

(2)Topic List

圖片

(3)Broker

圖片

2、管理 KafkaManager

(1)創(chuàng)建 Topic

點(diǎn)擊【Topic】>【Create】可以方便的創(chuàng)建并配置主題。如下圖所示:

(2)查看 Topic

點(diǎn)擊【topic】下面的 topic 名稱,即可查看對(duì)應(yīng) topic 信息。

圖片

三、Kafka Offset Explorer

Kafka Tool 是用來(lái)管理和使用 Kafka 集群的圖形應(yīng)用程序。提供了一種直觀的界面,讓用戶可以快速查看 Kafka 集群中的對(duì)象及集群主題中存儲(chǔ)的信息,關(guān)鍵功能如下:

  1. 快速查看所有 Kafka 集群,包括 Broker、主題、消費(fèi)者等。
  2. 查看分區(qū)中消息的內(nèi)容并添加信息消息。
  3. 查看消費(fèi)者偏移量。
  4. 支持 JSON 、XML 格式輸出。
  5. 添加和刪除主題以及其他管理功能。
  6. 支持自定義插件。

從 Kafka Tool 官網(wǎng)直接下載 Kafka Offset Explorer 2.3.2 版本,下載完成后,直接按照啟動(dòng)即可。

圖片

添加一個(gè) Kafka Cluster 集群并測(cè)試,直接連接測(cè)試如下:

圖片

單擊“”進(jìn)入 Kafka 集群的首頁(yè)。

圖片

通過(guò)上面圖示我們可以看到 Kafka 集群的 Broker 信息、 Topics 信息以及 Consumers 信息。

現(xiàn)在我們來(lái)創(chuàng)建一個(gè) Topic。

1、 點(diǎn)擊  "Browers" 集群中的 "Topics" 節(jié)點(diǎn),并在右邊的界面中單擊。

圖片

按鈕,或者右擊 "Topics" 節(jié)點(diǎn)2、 輸入 Topic 名稱、分區(qū)數(shù)、每個(gè)分區(qū)的副本數(shù),如下圖所示:3、 單擊 "Add" 按鈕,成功創(chuàng)建 Topic,如下圖所示:

圖片

4、現(xiàn)在我們來(lái)用該工具來(lái)接收 message2 上的消息數(shù)據(jù)。,選擇剛創(chuàng)建的主題 message2,并在右邊的窗口選擇 "Data" 選項(xiàng)卡,如下圖所示:

圖片

5、 啟動(dòng)一個(gè) Kafka Producer 命令行終端,發(fā)送一些消息,如下圖所示:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic message2

圖片

6、這里的數(shù)據(jù)格式默認(rèn)是 "Byte Array",可以在 Properties 的設(shè)置中將其修改為 String,并單擊 "Update" 按鈕,如下圖所示:

7、再次回到 Data 頁(yè)面,此時(shí)數(shù)據(jù)將按照正確的格式展示,如下圖所示:

因?yàn)橹虚g在終端打了好多回車,所以出來(lái)也是空白值。

四、KafkaOffsetMonitor

KafkaOffsetMonitor 是一款 Kafka 開源社區(qū)提供的基于 web 界面的管理平臺(tái),可以用來(lái)實(shí)時(shí)監(jiān)控 Kafka 服務(wù)的消費(fèi)組以及它們所在分區(qū)的 Offset,你可以通過(guò)瀏覽當(dāng)前的消費(fèi)者組,并且每個(gè) Topic 的所有分區(qū)的消費(fèi)情況都可以進(jìn)行實(shí)時(shí)監(jiān)控。

它讓我們很直觀的知道,每個(gè) Partition 的 Message 是否消費(fèi)掉,有沒有阻塞情況等等。這個(gè) Web 管理平臺(tái)保留的Partition、Offset 和它的 Consumer 的相關(guān)歷史數(shù)據(jù),我們可以通過(guò)瀏覽 Web 管理的相關(guān)模塊,清楚的知道最近一段時(shí)間的消費(fèi)情況。

該Web管理平臺(tái)有以下功能:

  1. 對(duì) Consumer 的消費(fèi)監(jiān)控,并列出每個(gè) Consumer 的 Offset 數(shù)據(jù)。
  2. 保護(hù)消費(fèi)者組列表信息。
  3. 每個(gè) Topic 的所有 Partition 列表包含:Topic、Pid、Offset、LogSize、Lag 以及 Owner 等等。
  4. 瀏覽查閱 Topic 的歷史消費(fèi)信息。

它的安裝比較簡(jiǎn)單,下載鏈接: 鏈接:https://pan.baidu.com/s/1Vfcfvci0g4YwSuYjcSpf0w?pwd=8484 提取碼:8484。

將其放到某個(gè)目錄下,然后在該目錄下執(zhí)行如下命令:

java -cp KafkaOffsetMonitor-assembly-0.3.0.jar \
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--offsetStorage kafka \
--zk localhost:2181 \
--port 8080 \
--refresh 10.seconds \
--retain 1.days

這里簡(jiǎn)單介紹下命令的含義:

  1. com.quantifind.kafka.offsetapp.OffsetGetterWeb 是運(yùn)行的 web 監(jiān)控類。
  2. --zk 用來(lái)指定 zookeeper 的地址。
  3. --port 用來(lái)指定 web 運(yùn)行的端口。
  4. --refresh 、--retain 用來(lái)指定頁(yè)面數(shù)據(jù)刷新的時(shí)間以及保留數(shù)據(jù)的時(shí)間。

圖片

打開瀏覽器訪問(wèn) 8080 端口,就可以打開 KafkaOffsetMonitor 的首頁(yè),如下圖所示:

圖片

然后選擇 "Topic List" 選項(xiàng)卡,就可以監(jiān)控某個(gè) Topic 中的具體消費(fèi)者消息,如下圖所示:

圖片

五、LogiKM

最后給大家推薦一款非常實(shí)用牛逼的監(jiān)控工具, 它是滴滴開源的號(hào)稱 "東半球最簡(jiǎn)單易用的一站式云原生實(shí)時(shí)流數(shù)據(jù)平臺(tái)"。

可以點(diǎn)擊官方進(jìn)行學(xué)習(xí):https://knowstreaming.com。

開發(fā)文檔如下:https://doc.knowstreaming.com/product/1-brief-introduction。

責(zé)任編輯:姜華 來(lái)源: 華仔聊技術(shù)
相關(guān)推薦

2022-05-15 09:16:28

IPv6IPIP地址

2022-02-16 07:32:10

性能代碼編程

2022-03-10 07:58:12

ReactorNetty運(yùn)轉(zhuǎn)架構(gòu)

2020-03-26 09:18:54

高薪本質(zhì)因素

2021-05-29 10:11:00

Kafa數(shù)據(jù)業(yè)務(wù)

2023-05-04 08:24:52

ChatGPT產(chǎn)品經(jīng)理工業(yè)革命

2019-11-12 15:11:45

秒殺流量高可用

2020-08-04 10:56:09

進(jìn)程線程協(xié)程

2020-07-16 09:02:45

aPaaS云計(jì)算aPaaS平臺(tái)

2025-01-13 12:00:00

反射Java開發(fā)

2024-08-13 17:09:00

架構(gòu)分庫(kù)分表開發(fā)

2020-01-02 09:06:23

微服務(wù)數(shù)據(jù)框架

2020-12-01 11:34:14

Elasticsear

2020-12-07 06:19:50

監(jiān)控前端用戶

2021-01-18 13:05:52

Serverless Serverfull FaaS

2023-07-07 08:00:00

KafkaSpringBoo

2022-04-28 10:41:08

SaaS業(yè)務(wù)方式

2023-11-09 08:41:25

DevOpsAIOps軟件

2023-11-08 18:35:29

得物前端監(jiān)控

2021-08-09 10:20:04

Thanos監(jiān)控架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)