Prometheus+Grafan監(jiān)控k8s集群詳解-創(chuàng)新互聯(lián)

一,Prometheus概述

1,什么是Prometheus?
Prometheus是最初在SoundCloud上構(gòu)建的開(kāi)源系統(tǒng)監(jiān)視和警報(bào)工具包,自2012年成立以來(lái),許多公司和組織都采用了Prometheus,該項(xiàng)目擁有非?;钴S的開(kāi)發(fā)人員和用戶(hù)社區(qū)?,F(xiàn)在,它是一個(gè)獨(dú)立的開(kāi)源項(xiàng)目,并且獨(dú)立與任何公司維護(hù)。為了強(qiáng)調(diào)這一點(diǎn)并闡明項(xiàng)目的治理結(jié)構(gòu),Prometheus在2016年加入了 Cloud Native Computing Foundation(云原生計(jì)算基金會(huì)(CNCF)),這是繼kubernetes之后的第二個(gè)托官項(xiàng)目。

創(chuàng)新互聯(lián)公司2013年至今,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元玉樹(shù)做網(wǎng)站,已為上家服務(wù),為玉樹(shù)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

2,Prometheus的優(yōu)勢(shì)
Prometheus 的主要優(yōu)勢(shì)有:

  • 由指標(biāo)名稱(chēng)和鍵/值識(shí)別時(shí)間序列數(shù)據(jù)組成的多維數(shù)據(jù)模型。
  • 強(qiáng)大的查詢(xún)語(yǔ)言 (PromQL)
  • 不依賴(lài)分布式存儲(chǔ);單個(gè)服務(wù)節(jié)點(diǎn)具有自治能力。
  • 通過(guò)基于HTTP的拉取方式采集時(shí)間序列數(shù)據(jù)。
  • 可以通過(guò)中間網(wǎng)關(guān)來(lái)推送時(shí)間序列數(shù)據(jù)。
  • 可以通過(guò)靜態(tài)配置文件或服務(wù)發(fā)現(xiàn)來(lái)獲取監(jiān)控目標(biāo)。
  • 支持多種類(lèi)型的圖標(biāo)和儀表盤(pán),比如Grafana等。

3,Prometheus的核心組件
Prometheus生態(tài)系統(tǒng)有多個(gè)組件組成,其中有許多組件是可選的:

  • Prometheus Server:用于收集指標(biāo)和存儲(chǔ)時(shí)間序列數(shù)據(jù),并提供查詢(xún)接口。
  • client Library:客戶(hù)端庫(kù)(例如Go,python,java等),為需要監(jiān)控的服務(wù)產(chǎn)生相應(yīng)的/metrics(服務(wù)指標(biāo)度量)并暴露給Prometheus server。
  • push gateway:推送網(wǎng)關(guān),主要用于臨時(shí)性的jobs。由于這類(lèi)jobs存在時(shí)間較短,可能在Prometheus來(lái)pull之前就消失了,對(duì)此jobs定時(shí)將指標(biāo)push到pushgateway,再由Prometheus server從pushgateway上pull。
  • Exporter:用于暴露已有的第三方服務(wù)的 metrics 給Prometheus。
  • alertmanager:用來(lái)處理告警,從Prometheus server端接收警告后,會(huì)進(jìn)行去除重復(fù)數(shù)據(jù),分組,并路由到對(duì)收的接收方式,發(fā)出報(bào)警。最常見(jiàn)的接收方式:電子郵件。

4,Prometheus的架構(gòu)
Prometheus 的整體架構(gòu)以及生態(tài)系統(tǒng)組件如下圖所示:
Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus server直接從監(jiān)控目標(biāo)中或者間接通過(guò)推送網(wǎng)關(guān)來(lái)拉取監(jiān)控指標(biāo),它在本地存儲(chǔ)所有抓取到的樣本數(shù)據(jù),并對(duì)此數(shù)據(jù)執(zhí)行一系列規(guī)則,以匯總和記錄現(xiàn)有數(shù)據(jù)的新時(shí)間序列和生成告警??梢酝ㄟ^(guò)Grafana或者其他工具來(lái)實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)的可視化。

5,Prometheus的優(yōu)缺點(diǎn)
Prometheus對(duì)于采集純數(shù)字值的時(shí)間序列非常在行,所以它適合以物理機(jī)為中心的監(jiān)控,也適合監(jiān)控高度動(dòng)態(tài)的面向服務(wù)的架構(gòu)體。在微服務(wù)領(lǐng)域,它的多維數(shù)據(jù)采集以及查詢(xún)非常獨(dú)到且很有競(jìng)爭(zhēng)力。
Prometheus大的價(jià)值在于可靠性,用戶(hù)可以再任何時(shí)候看到整個(gè)被監(jiān)控系統(tǒng)的統(tǒng)計(jì)信息,即使在系統(tǒng)有問(wèn)題的是時(shí)候。但它不能做到100%的精確,比如如果你要按請(qǐng)求數(shù)據(jù)計(jì)費(fèi),那么Prometheus不太適合你,因?yàn)樗占臄?shù)據(jù)可能不夠詳細(xì)完整。這種情況下你最好使用其他系統(tǒng)來(lái)收集和分析數(shù)據(jù)以進(jìn)行計(jì)費(fèi),并使用Prometheus來(lái)監(jiān)控系統(tǒng)的其余部分。

二,Prometheus部署

部署環(huán)境:

節(jié)點(diǎn)名 主機(jī)ip 操作系統(tǒng)
master172.16.1.30Centos7
node01172.16.1.31Centos7
node02172.16.1.32Centos7

1,獲得Prometheus的git項(xiàng)目:

1)安裝git工具包:
[root@master ~]# yum install git -y
2)獲取Prometheus的git項(xiàng)目:
[root@master prometheus]#  git clone https://github.com/coreos/kube-prometheus.git

Prometheus+Grafan監(jiān)控k8s集群詳解
Prometheus+Grafan監(jiān)控k8s集群詳解

#執(zhí)行g(shù)it pull命令進(jìn)行更新,確??寺〉奖镜氐氖亲钚碌模?[root@master kube-prometheus]# git pull
Already up-to-date.

2,導(dǎo)入部署Prometheus所需組件鏡像:
1)在集群中的所有node上進(jìn)行上傳鏡像包(包括master)
Prometheus+Grafan監(jiān)控k8s集群詳解
2)分別在集群中的node上進(jìn)行l(wèi)oad操作:

#注意:確定在當(dāng)前路徑下執(zhí)行
[root@master images]# for i in `ls`; do docker load < $i; done
[root@node01 images]# for i in `ls`; do docker load < $i; done
[root@node02 images]#  for i in `ls`; do docker load < $i; done

以上鏡像都是我通過(guò)國(guó)內(nèi)阿里云鏡像站下載好的(已修改tag),我已上傳至網(wǎng)盤(pán),大家可以去進(jìn)行下載:鏈接:https://pan.baidu.com/s/1c8pP3vAS9qHCQqc-XaYRXQ
提取碼:8zk2

注意:
考慮到以上組件的鏡像版本在git項(xiàng)目上會(huì)經(jīng)常的更新,所以大家就得根據(jù)最新版本去下載相對(duì)應(yīng)的鏡像;yaml文件中默認(rèn)是從quay.io和gcr.io進(jìn)行鏡像拉?。ㄆ渌膰?guó)內(nèi)可直接拉?。?,我們知道,國(guó)內(nèi)訪問(wèn)外網(wǎng)是被屏蔽的,我們無(wú)法直接將鏡像下載下來(lái),所以可以分別通過(guò) quay-mirror.qiniu.com 和 registry.aliyuncs.com鏡像站去拉取。
###例如:
拉取鏡像:quay.io/coreos/prometheus-operator:v0.36.0
可以改為:quay-mirror.qiniu.com/coreos/prometheus-operator:v0.36.0

拉取鏡像:gcr.io/google_containers/kube-proxy
可以改為:registry.aliyuncs.com/google_containers//kube-proxy

3,修改訪問(wèn)模式為nodeport

1)修改grafana-service文件:
[root@master kube-prometheus]# cd manifests/
[root@master manifests]# vim grafana-service.yaml

Prometheus+Grafan監(jiān)控k8s集群詳解

2)修改Prometheus-service文件:
[root@master manifests]# vim prometheus-service.yaml

Prometheus+Grafan監(jiān)控k8s集群詳解
3)修改alertmanager-service文件:
Prometheus+Grafan監(jiān)控k8s集群詳解

4,執(zhí)行安裝操作
1)先安裝Prometheus所需要的資源(在manifests/setup目錄下的yaml文件):
Prometheus+Grafan監(jiān)控k8s集群詳解

[root@master manifests]# kubectl apply -f  setup/
2)安裝Prometheus(在manifests/路徑下的yaml文件):
[root@master manifests]# cd ..
[root@master kube-prometheus]# kubectl apply -f manifests/

5,查看Prometheus資源(確保以下pod都達(dá)到所期望的狀態(tài)值)
[root@master kube-prometheus]# kubectl get pod -n monitoring
Prometheus+Grafan監(jiān)控k8s集群詳解
[root@master kube-prometheus]# kubectl get svc -n monitoring
Prometheus+Grafan監(jiān)控k8s集群詳解

以上各組件說(shuō)明:

  • MerticServer: k8s集群資源使用情況的聚合器,收集數(shù)據(jù)給k8s集群內(nèi)使用;如kubectl,hpa,scheduler等。
  • PrometheusOperator:是一個(gè)系統(tǒng)監(jiān)測(cè)和警報(bào)工具箱,用來(lái)存儲(chǔ)監(jiān)控?cái)?shù)據(jù)。
  • NodeExPorter:用于各個(gè)node的關(guān)鍵度量指標(biāo)狀態(tài)數(shù)據(jù)。
  • kubeStateMetrics:收集k8s集群內(nèi)資源對(duì)象數(shù)據(jù),指定告警規(guī)則。
  • Prometheus:采用pull方式收集apiserver,scheduler,control-manager,kubelet組件數(shù)據(jù),通過(guò)http協(xié)議傳輸。
  • Grafana:是可視化數(shù)據(jù)統(tǒng)計(jì)和監(jiān)控平臺(tái)。

6,Prometheus監(jiān)控頁(yè)面展示

1)訪問(wèn)Prometheus web頁(yè)面:
訪問(wèn)url:http://172.16.1.30:30200/
Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus+Grafan監(jiān)控k8s集群詳解

#部署成功后,會(huì)顯示集群節(jié)點(diǎn)各個(gè)組件的詳細(xì)信息,并且狀態(tài)為up。

2)訪問(wèn)alertmanager web頁(yè)面:
訪問(wèn)url: http://172.16.1.30:30300
Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus+Grafan監(jiān)控k8s集群詳解

3)訪問(wèn)Grafana 圖形化界面:
訪問(wèn)url: http://172.16.1.30:30100 , 初始用戶(hù)名和密碼都為:admin
Prometheus+Grafan監(jiān)控k8s集群詳解

#修改用戶(hù)名和密碼后點(diǎn)擊登錄:
Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus+Grafan監(jiān)控k8s集群詳解

三,使用Prometheus監(jiān)控平臺(tái)

1,為grafana添加Prometheus數(shù)據(jù)源
Prometheus+Grafan監(jiān)控k8s集群詳解

上圖所示,可以看到當(dāng)部署完P(guān)rometheus后默認(rèn)已經(jīng)為我們添加了一個(gè)Prometheus數(shù)據(jù)源,大家也可以點(diǎn)擊右上角的"Add data source"選項(xiàng)自定義添加所需要的數(shù)據(jù)源。如下圖所示:
Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus+Grafan監(jiān)控k8s集群詳解

2,為grafana添加dashboard
Prometheus+Grafan監(jiān)控k8s集群詳解

3,監(jiān)控集群資源
Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus+Grafan監(jiān)控k8s集群詳解

如上圖所示,已為我們提供了一些內(nèi)置資源監(jiān)控模板,大家可以選擇查看需要監(jiān)控的資源。下面將展示幾個(gè)重要監(jiān)控的資源對(duì)象信息:

1)查看集群資源信息:
Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus+Grafan監(jiān)控k8s集群詳解

#可以看到集群中cpu,memory,network以及磁盤(pán)IO等使用信息的展示。

2)查看各個(gè)節(jié)點(diǎn)資源的使用情況:
Prometheus+Grafan監(jiān)控k8s集群詳解
Prometheus+Grafan監(jiān)控k8s集群詳解

3)Pod資源查看:
Prometheus+Grafan監(jiān)控k8s集群詳解

#如上所示,可以看到Prometheus為我們提供的資源監(jiān)控項(xiàng)還是非常全面的。其他資源監(jiān)控項(xiàng)大家可以自行查看。

4,其他監(jiān)控模板
grafana提供自帶的監(jiān)控模板是非常豐富的,不過(guò)我們也可以進(jìn)入Grafana官網(wǎng)下載其他監(jiān)控模板。

1)下載監(jiān)控模板,如下圖所示:
Prometheus+Grafan監(jiān)控k8s集群詳解

比如,我們選擇Node Exporter for Prometheus 模板:
Prometheus+Grafan監(jiān)控k8s集群詳解

2)在Grafana web界面上導(dǎo)入模板:
Prometheus+Grafan監(jiān)控k8s集群詳解
Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus+Grafan監(jiān)控k8s集群詳解

Prometheus+Grafan監(jiān)控k8s集群詳解

模板導(dǎo)入成功,其他類(lèi)型的監(jiān)控模板大家可以自己在Grafana官網(wǎng)上去下載。

Alertmanager實(shí)現(xiàn)郵箱告警可參考博文:監(jiān)控利器-Prometheus安裝與部署+實(shí)現(xiàn)郵箱報(bào)警

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:Prometheus+Grafan監(jiān)控k8s集群詳解-創(chuàng)新互聯(lián)
鏈接URL:http://bm7419.com/article32/cdespc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、域名注冊(cè)ChatGPT、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司