1,什么是Prometheus?
Prometheus是最初在SoundCloud上構(gòu)建的開源系統(tǒng)監(jiān)視和警報(bào)工具包,自2012年成立以來,許多公司和組織都采用了Prometheus,該項(xiàng)目擁有非?;钴S的開發(fā)人員和用戶社區(qū)。現(xiàn)在,它是一個(gè)獨(dú)立的開源項(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)目。
我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、柳南ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的柳南網(wǎng)站制作公司
2,Prometheus的優(yōu)勢(shì)
Prometheus 的主要優(yōu)勢(shì)有:
- 由指標(biāo)名稱和鍵/值識(shí)別時(shí)間序列數(shù)據(jù)組成的多維數(shù)據(jù)模型。
- 強(qiáng)大的查詢語(yǔ)言 (PromQL)
- 不依賴分布式存儲(chǔ);單個(gè)服務(wù)節(jié)點(diǎn)具有自治能力。
- 通過基于HTTP的拉取方式采集時(shí)間序列數(shù)據(jù)。
- 可以通過中間網(wǎng)關(guān)來推送時(shí)間序列數(shù)據(jù)。
- 可以通過靜態(tài)配置文件或服務(wù)發(fā)現(xiàn)來獲取監(jiān)控目標(biāo)。
- 支持多種類型的圖標(biāo)和儀表盤,比如Grafana等。
3,Prometheus的核心組件
Prometheus生態(tài)系統(tǒng)有多個(gè)組件組成,其中有許多組件是可選的:
- Prometheus Server:用于收集指標(biāo)和存儲(chǔ)時(shí)間序列數(shù)據(jù),并提供查詢接口。
- client Library:客戶端庫(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。由于這類jobs存在時(shí)間較短,可能在Prometheus來pull之前就消失了,對(duì)此jobs定時(shí)將指標(biāo)push到pushgateway,再由Prometheus server從pushgateway上pull。
- Exporter:用于暴露已有的第三方服務(wù)的 metrics 給Prometheus。
- alertmanager:用來處理告警,從Prometheus server端接收警告后,會(huì)進(jìn)行去除重復(fù)數(shù)據(jù),分組,并路由到對(duì)收的接收方式,發(fā)出報(bào)警。最常見的接收方式:電子郵件。
4,Prometheus的架構(gòu)
Prometheus 的整體架構(gòu)以及生態(tài)系統(tǒng)組件如下圖所示:
Prometheus server直接從監(jiān)控目標(biāo)中或者間接通過推送網(wǎng)關(guān)來拉取監(jiān)控指標(biāo),它在本地存儲(chǔ)所有抓取到的樣本數(shù)據(jù),并對(duì)此數(shù)據(jù)執(zhí)行一系列規(guī)則,以匯總和記錄現(xiàn)有數(shù)據(jù)的新時(shí)間序列和生成告警??梢酝ㄟ^Grafana或者其他工具來實(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ù)采集以及查詢非常獨(dú)到且很有競(jìng)爭(zhēng)力。
Prometheus最大的價(jià)值在于可靠性,用戶可以再任何時(shí)候看到整個(gè)被監(jiān)控系統(tǒng)的統(tǒng)計(jì)信息,即使在系統(tǒng)有問題的是時(shí)候。但它不能做到100%的精確,比如如果你要按請(qǐng)求數(shù)據(jù)計(jì)費(fèi),那么Prometheus不太適合你,因?yàn)樗占臄?shù)據(jù)可能不夠詳細(xì)完整。這種情況下你最好使用其他系統(tǒng)來收集和分析數(shù)據(jù)以進(jìn)行計(jì)費(fèi),并使用Prometheus來監(jiān)控系統(tǒng)的其余部分。
部署環(huán)境:
節(jié)點(diǎn)名 | 主機(jī)ip | 操作系統(tǒng) |
---|---|---|
master | 172.16.1.30 | Centos7 |
node01 | 172.16.1.31 | Centos7 |
node02 | 172.16.1.32 | Centos7 |
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
#執(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)
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ó)內(nèi)阿里云鏡像站下載好的(已修改tag),我已上傳至網(wǎng)盤,大家可以去進(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ǎng)是被屏蔽的,我們無法直接將鏡像下載下來,所以可以分別通過 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,修改訪問模式為nodeport
1)修改grafana-service文件:
[root@master kube-prometheus]# cd manifests/
[root@master manifests]# vim grafana-service.yaml
2)修改Prometheus-service文件:
[root@master manifests]# vim prometheus-service.yaml
3)修改alertmanager-service文件:
4,執(zhí)行安裝操作
1)先安裝Prometheus所需要的資源(在manifests/setup目錄下的yaml文件):
[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
[root@master kube-prometheus]# kubectl get svc -n monitoring
以上各組件說明:
- MerticServer: k8s集群資源使用情況的聚合器,收集數(shù)據(jù)給k8s集群內(nèi)使用;如kubectl,hpa,scheduler等。
- PrometheusOperator:是一個(gè)系統(tǒng)監(jiān)測(cè)和警報(bào)工具箱,用來存儲(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ù),通過http協(xié)議傳輸。
- Grafana:是可視化數(shù)據(jù)統(tǒng)計(jì)和監(jiān)控平臺(tái)。
6,Prometheus監(jiān)控頁(yè)面展示
1)訪問Prometheus web頁(yè)面:
訪問url:http://172.16.1.30:30200/
#部署成功后,會(huì)顯示集群節(jié)點(diǎn)各個(gè)組件的詳細(xì)信息,并且狀態(tài)為up。
2)訪問alertmanager web頁(yè)面:
訪問url: http://172.16.1.30:30300
3)訪問Grafana 圖形化界面:
訪問url: http://172.16.1.30:30100 , 初始用戶名和密碼都為:admin
#修改用戶名和密碼后點(diǎn)擊登錄:
1,為grafana添加Prometheus數(shù)據(jù)源
上圖所示,可以看到當(dāng)部署完P(guān)rometheus后默認(rèn)已經(jīng)為我們添加了一個(gè)Prometheus數(shù)據(jù)源,大家也可以點(diǎn)擊右上角的"Add data source"選項(xiàng)自定義添加所需要的數(shù)據(jù)源。如下圖所示:
2,為grafana添加dashboard
3,監(jiān)控集群資源
如上圖所示,已為我們提供了一些內(nèi)置資源監(jiān)控模板,大家可以選擇查看需要監(jiān)控的資源。下面將展示幾個(gè)重要監(jiān)控的資源對(duì)象信息:
1)查看集群資源信息:
#可以看到集群中cpu,memory,network以及磁盤IO等使用信息的展示。
2)查看各個(gè)節(jié)點(diǎn)資源的使用情況:
3)Pod資源查看:
#如上所示,可以看到Prometheus為我們提供的資源監(jiān)控項(xiàng)還是非常全面的。其他資源監(jiān)控項(xiàng)大家可以自行查看。
4,其他監(jiān)控模板
grafana提供自帶的監(jiān)控模板是非常豐富的,不過我們也可以進(jìn)入Grafana官網(wǎng)下載其他監(jiān)控模板。
1)下載監(jiān)控模板,如下圖所示:
比如,我們選擇Node Exporter for Prometheus 模板:
2)在Grafana web界面上導(dǎo)入模板:
模板導(dǎo)入成功,其他類型的監(jiān)控模板大家可以自己在Grafana官網(wǎng)上去下載。
Alertmanager實(shí)現(xiàn)郵箱告警可參考博文:監(jiān)控利器-Prometheus安裝與部署+實(shí)現(xiàn)郵箱報(bào)警
分享題目:Prometheus+Grafan監(jiān)控k8s集群詳解
標(biāo)題鏈接:http://aaarwkj.com/article28/peijcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站改版、網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷、虛擬主機(jī)、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(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í)需注明來源: 創(chuàng)新互聯(lián)