天天熱點!Kubernetes_使用kubernetes部署prometheus+grafana監(jiān)控系統(tǒng)(Kubernetes工作實踐類)
本文屬于Kubernetes工作實踐類,工作中,在機器上安裝好了kubernetes之后,需要同時安裝好prometheus+grafana監(jiān)控。
本文工程代碼(node-exporter.yaml + prometheus.yaml + grafana.yaml)https://www.syjshare.com/res/PVP90A7J
(資料圖片僅供參考)
二、K8s監(jiān)控系統(tǒng)架構(gòu)2.1 Prometheus簡介prometheus 官網(wǎng) :https://prometheus.io/prometheus github :https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/prometheus
grafana 官網(wǎng):https://grafana.com/grafana/dashboards
2.2 Prometheus架構(gòu)2.3 Prometheus知識普及對于開發(fā),官網(wǎng)的價值在于所有API都在這里github的價值在于下載下來,定制化修改一下,就可以打一個鏡像常用功能直接百度/谷歌都有人做過,實際問題直接百度/谷歌都有人解決過
1、支持pull、push數(shù)據(jù)添加方式2、支持k8s服務發(fā)現(xiàn)3、提供查詢語言PromQL4、時序(time series)是由名字(Metric)以及一組key/value標簽定義的5、數(shù)據(jù)類型
三、K8s監(jiān)控系統(tǒng)搭建3.1 三類數(shù)據(jù)采集metricsmetrics 是一個接口 然后將 metrics 的數(shù)據(jù)給 普羅米修斯 ,下面介紹三類:nodeExporter通過自己的 /metrics 接口得到數(shù)據(jù),給prometheus;靜態(tài)pod通過自帶的 /metrics 接口得到數(shù)據(jù),給prometheus;
第一,K8S集群每個服務器數(shù)據(jù)
通過NodeExporter:https://github.com/prometheus/node_exporter
k8s集群每個機器node都安裝一個NodeExporter(使用daemonSet部署方式就要確保每個node都安裝上了)
理論支持:exporter 是一個數(shù)據(jù)采集工具,除了Node Exporter之外,還有HAProxy Exporter、MySQL Exporter、Redis Exporter和Rabbitmq Exporter。
第二,K8S集群每個組件數(shù)據(jù):k8s每個組件都有metrics接口,如下:
ETCD:https://ip:2379/metricsAPIServer:https://ip:6443/metricsControllerManager:https://ip:10252/metricsScheduler:https://ip:10251/metrics
理論支持:k8s四個靜態(tài)pod的kubectl底層都是有 restful 風格的接口支持的,所以通過 /metrics 接口獲取數(shù)據(jù)是可行的。
第三,容器數(shù)據(jù):通過cAdvisor,
3.2 Prometheus+Grafana在master上創(chuàng)建prometheus目錄
(1)創(chuàng)建命名空間ns-monitor
(2)創(chuàng)建node-exporternamespace.yaml node-exporter.yaml prometheus.yaml grafana.yaml ingress.yamlkubectl apply -f namespace.yamlkubectl get namespace
(3)部署prometheus pod包含rbac認證、ConfigMap等 注意 :記得修改prometheus.yaml文件中的ip為master的ip和path[PV需要使用到]
(4)部署grafana
(5)增加域名訪問[沒有域名好像沒有靈魂] 前提 :配置好ingress controller和域名解析
3.3 實踐一下:將prometheus+grafana搭建起來3.3.1 搭建# 下載好鏡像(所需要的三個鏡像都可以下載到,無需科學上網(wǎng))docker pull prom/node-exporter:v0.16.0docker pull prom/prometheus:latestdocker pull grafana/grafana:latest# 新建目錄和命名空間,并上傳三個yaml到目錄中mkdir /root/ns-monitor # 用來存放三個yaml文件kubectl create ns ns-monitor # 配置好nfs和需要新增的目錄mkdir /nfs/data/prometheusmkdir /nfs/data/grafana# 第一步,安裝nfsyum install -y nfs-utils# 第二步,創(chuàng)建nfs目錄并授予權(quán)限 /nfs/data/nginx 這個目錄就是nfs ip那個目錄# 創(chuàng)建nfs目錄mkdir -p /nfs/data/# 授予權(quán)限chmod -R 777 /nfs/data# 第三步,編輯export文件并保存# 編輯export文件 對于/nfs/data目錄,授予可讀可寫權(quán)限、根目錄權(quán)限、同步數(shù)據(jù)權(quán)限vi /etc/exports /nfs/data *(rw,no_root_squash,sync)# 使得配置生效exportfs -r# 查看生效exportfs# 第四步,啟動rpcbind、nfs服務并驗證# 啟動rpcbind、nfs服務,并驗證兩個服務啟動 ps -ef|grep rpcbind ps -ef|grep nfssystemctl restart rpcbind && systemctl enable rpcbindsystemctl restart nfs && systemctl enable nfs# 查看rpc服務的注冊情況rpcinfo -p localhost# showmount測試 # showmount命令用于查詢NFS服務器的相關(guān)信息 -e或--exports 顯示NFS服務器的輸出清單。showmount -e master-ip showmount -e 192.168.100.1513.3.2 分步測試
注意分步驗證:驗證node exporter驗證 普羅米修斯驗證 grafana
3.3.2.1 安裝 node exporter 測試好了3.3.2.2 使用kubernetes部署prometheus關(guān)于prometheus.yaml,從界面驗證各個yaml
(1) 驗證 kubectl get all -n ns-monitor | kubectl get pv,pvc -A
(2) 持久化:驗證 pv pvc 去 /nfs/data/prometheus 目錄下
(3) configmap:驗證 configmap 去service discovery
(4) rbac:驗證 rbac 能運行起來就驗證了 (rbac是apiserver四特性中的第二特性,如果rbac配置錯誤,無法apply成功)
(5) deployment-service:驗證 deployment service 能看到界面就驗證好了
kubectl get all -n ns-monitor 服務啟動成功kubectl get pv,pvc -A 持久化綁定bound成功
驗證啟動:192.168.100.151:30841 (prometheus服務的 nodePort 暴露的出來端口)
http://192.168.100.151:30841/targets 查看所有的/metrics的數(shù)據(jù)被prometheus監(jiān)控到了,如下:
進入 /nfs/data/prometheus ,這里表示持久化完成
3.3.2.3 grafana測試成功最后解釋一下,pv pvc 如何匹配上的
3.3.3 Grafana將同一個集群中的prometheus配置為數(shù)據(jù)源datasource3.3.4 Grafana導入Dashboard和查看Dashboard3.3.4.1 Grafana導入看板Dashboard的三種方式所有的dashboard看板實際就是一個json文件,三個紅色框框表示三種方式
第一種,將電腦本地的JSON導入到Grafana中第二種,官網(wǎng)下載地址:https://grafana.com/grafana/dashboards,進入到官網(wǎng),將ID復制過來,點擊右邊的Load
第三種,直接將JSON字符串的內(nèi)容復制過來,點擊下面的Load
3.3.4.2 Grafana查看看板Dashboard四、尾聲finish!!!
Learn technology well, Day Day Up !
關(guān)鍵詞: 監(jiān)控系統(tǒng) 復制過來 數(shù)據(jù)采集
相關(guān)閱讀
-
世界熱推薦:今晚7:00直播丨下一個突破...
今晚19:00,Cocos視頻號直播馬上點擊【預約】啦↓↓↓在運營了三年... -
NFT周刊|Magic Eden宣布支持Polygon網(wǎng)...
Block-986在NFT這樣的市場,每周都會有相當多項目起起伏伏。在過去... -
環(huán)球今亮點!頭條觀察 | DeFi的興衰與...
在比特幣得到機構(gòu)關(guān)注之后,許多財務專家預測世界將因為加密貨幣的... -
重新審視合作,體育Crypto的可靠關(guān)系才能雙贏
Block-987即使在體育Crypto領(lǐng)域,人們的目光仍然集中在FTX上。隨著... -
簡訊:前端單元測試,更進一步
前端測試@2022如果從2014年Jest的第一個版本發(fā)布開始計算,前端開發(fā)... -
焦點熱訊:劉強東這波操作秀
近日,劉強東發(fā)布京東全員信,信中提到:自2023年1月1日起,逐步為...