歡迎訪問(wèn)我的GitHub
https://github.com/zq2599/blog_demos
內(nèi)容:所有原創(chuàng)文章分類(lèi)匯總及配套源碼,涉及Java、Docker姐呐、Kubernetes众眨、DevOPS等氯葬;
對(duì)于部署在K8S上的Kafka來(lái)說(shuō)吟孙,<font color="blue">Prometheus+Grafana</font>是常用的監(jiān)控方案俐末,今天就來(lái)實(shí)戰(zhàn)通過(guò)Prometheus+Grafana監(jiān)控K8S環(huán)境的Kafka偎蘸;
準(zhǔn)備工作
今天聚焦的是Kafka監(jiān)控庄蹋,因此需要K8S、Helm迷雪、Kafka限书、Prometheus、Grafana等服務(wù)都已就緒章咧,下面提供了一些鏈接倦西,在您做相關(guān)部署時(shí)可以作為參考:
- 搭建K8S:《kubespray2.11安裝kubernetes1.15》
- 搭建Helm:《部署和體驗(yàn)Helm(2.16.1版本)》
- 搭建Prometheus和Grafana:《kubernetes1.15極速部署prometheus和grafana》
- 部署Kafka:《K8S環(huán)境快速部署Kafka(K8S外部可訪問(wèn))》
版本信息
- Kubernetes:1.15
- Kubernetes宿主機(jī):CentOS Linux release 7.7.1908
- NFS服務(wù):IP地址192.168.50.135,文件夾/volume1/nfs-storageclass-test
- Helm:2.16.1
- Kafka:2.0.1
- Zookeeper:3.5.5
- Prometheus:2.0.0
- Grafana:5.0.0
準(zhǔn)備完畢就可以開(kāi)始實(shí)戰(zhàn)了赁严;
確認(rèn)kafka-exporter參數(shù)
即將部署的kafka-exporter要從kafka取得數(shù)據(jù)扰柠,因此要準(zhǔn)備kafka-exporter參數(shù);
-
查看kafka的服務(wù)中TYPE是ClusterIP的那個(gè)疼约,如下圖紅框所示:
- 上述紅框中的服務(wù)名字是<font color="blue">kafka</font>卤档、端口是<font color="blue">9092</font>,因此稍后在kafka-exporter中配置的kafka信息就是<font color="blue">kafka:9092</font>
實(shí)際操作
- 添加Helm倉(cāng)庫(kù)(該倉(cāng)庫(kù)中有我們需要的kafka-exporter):<font color="blue">helm repo add gkarthiks https://gkarthiks.github.io/helm-charts</font>
- 下載kafka-exporter:<font color="blue">helm fetch gkarthiks/prometheus-kafka-exporter</font>
- 解壓下載的chart文件:<font color="blue">tar -zxvf prometheus-kafka-exporter-0.1.0.tgz</font>
- 進(jìn)入解壓后的目錄:<font color="blue">cd prometheus-kafka-exporter</font>
-
修改values.yaml文件程剥,如下圖紅框劝枣,<font color="blue">kafka:9092</font>就是同一namespace下訪問(wèn)kafka的地址:
- 在values.yaml文件所在目錄執(zhí)行:<font color="blue">helm install --name-template kafka-exporter -f values.yaml . --namespace kafka-test</font> (kafka的namespace是kafka-test,這里的namespace要和kafka保持一致)
-
查看服務(wù)和pod是否就緒:
- 此時(shí)我們部署好了<font color="blue">kafka-exporter</font>,能給prometheus提供監(jiān)控?cái)?shù)據(jù)了舔腾,但prometheus并不知道要來(lái)這里采集數(shù)據(jù)溪胶,因此接下來(lái)要配置prometheus;
-
確認(rèn)<font color="blue">kafka-exporter</font>服務(wù)的訪問(wèn)地址琢唾,prometheus采集數(shù)據(jù)要用到载荔,名字和端口如下圖紅框所示,因此可以拼接處跨namespace的訪問(wèn)地址:<font color="blue">kafka-exporter-prometheus-kafka-exporter.kafka-test.svc.cluster.local:9308</font>
- 如果您是參照《kubernetes1.15極速部署prometheus和grafana》部署的prometheus采桃,請(qǐng)打開(kāi)部署時(shí)下載的<font color="blue">configmap.yaml</font>文件懒熙,里面是prometheus的配置,如果是其他途徑部署的普办,請(qǐng)按照自己的部署情況找到prometheus.yml的位置工扎;
-
<font color="blue">configmap.yaml</font>中增加下圖紅框中的內(nèi)容,這樣prometheus就可以采集kafka-exporter的數(shù)據(jù)了:
- 使得配置生效:<font color="blue">kubectl apply -f configmap.yaml</font>
-
此時(shí)的prometheus容器用的還是舊配置衔蹲,為了讓配置生效肢娘,要把prometheus的pod刪除,這樣K8S自動(dòng)創(chuàng)建的新pod就用上了新的配置舆驶,找出prometheus的pod:<font color="blue">kubectl get pods -n kube-system</font>
- 刪除舊的pod:<font color="blue">kubectl delete pod prometheus-68545d4fd8-f5q2w -n kube-system</font>
- 等待新的pod被自動(dòng)創(chuàng)建橱健;
-
接下來(lái)登錄Grafana,配置監(jiān)控頁(yè)面沙廉,如下圖拘荡,做模板導(dǎo)入操作:
-
在導(dǎo)入模板的頁(yè)面輸入編號(hào)7589:
-
選擇數(shù)據(jù)源的時(shí)候,要選prometheus撬陵,如下圖:
-
此時(shí)如果您的kafka有消息的收發(fā)珊皿,就可以立即看到數(shù)據(jù)了:
至此,K8S環(huán)境下的kafka監(jiān)控已經(jīng)部署完成巨税,希望本文能給您一些參考蟋定;
歡迎關(guān)注公眾號(hào):程序員欣宸
微信搜索「程序員欣宸」,我是欣宸草添,期待與您一同暢游Java世界...
https://github.com/zq2599/blog_demos