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

一,Prometheus概述

1,什么是Prometheus?
Prometheus是最初在SoundCloud上構建的開源系統監(jiān)視和警報工具包,自2012年成立以來,許多公司和組織都采用了Prometheus,該項目擁有非常活躍的開發(fā)人員和用戶社區(qū)?,F在,它是一個獨立的開源項目,并且獨立與任何公司維護。為了強調這一點并闡明項目的治理結構,Prometheus在2016年加入了 Cloud Native Computing Foundation(云原生計算基金會(CNCF)),這是繼kubernetes之后的第二個托官項目。

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

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

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

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

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

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

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

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

二,Prometheus部署

部署環(huán)境:

節(jié)點名 主機ip 操作系統
master172.16.1.30Centos7
node01172.16.1.31Centos7
node02172.16.1.32Centos7

1,獲得Prometheus的git項目:

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

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

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

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

#注意:確定在當前路徑下執(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

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

注意:
考慮到以上組件的鏡像版本在git項目上會經常的更新,所以大家就得根據最新版本去下載相對應的鏡像;yaml文件中默認是從quay.io和gcr.io進行鏡像拉?。ㄆ渌膰鴥瓤芍苯永。?,我們知道,國內訪問外網是被屏蔽的,我們無法直接將鏡像下載下來,所以可以分別通過 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

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都達到所期望的狀態(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集群詳解

以上各組件說明:

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

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

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

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

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

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

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

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

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

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

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

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

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

上圖所示,可以看到當部署完Prometheus后默認已經為我們添加了一個Prometheus數據源,大家也可以點擊右上角的"Add data source"選項自定義添加所需要的數據源。如下圖所示:
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集群詳解

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

成都網站建設公司_創(chuàng)新互聯,為您提供網站改版、域名注冊ChatGPT、營銷型網站建設、企業(yè)網站制作品牌網站建設

廣告

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

成都網站建設公司