兩大grafana實用插件快速監控kubernetes


監控k8s的主流方案是prometheus+grafana兩大套件,為了快速部署並監控k8s,目前有兩款主流grafana插件提供給了我們方案

1、環境說明

本文環境是二進制部署的k8s集群,prometheusgrafana通過yaml部署(非operator)

# kubectl version
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:32:14Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
# kubectl get pods -n kube-system -l k8s-app=prometheus
NAME           READY   STATUS    RESTARTS   AGE
prometheus-0   2/2     Running   0          1m
# kubectl get pods -n kube-system -l app=grafana
NAME        READY   STATUS    RESTARTS   AGE
grafana-0   1/1     Running   0          1m

2、grafana-kubernetes-app插件

插件地址

2.1、插件介紹

Grafana Kubernetes App可監控Kubernetes集群的性能。它包括4個儀表板,即集群,節點,Pod/容器和部署。它允許自動部署所需的Prometheus導出器,並使用默認的scrape配置與您的集群內Prometheus部署一起使用。收集的指標是高級集群和節點統計信息,以及較低級別的pod和容器統計信息。使用高級指標進行警報,使用低級指標進行故障排除。

要求
目前僅支持Prometheus
為了自動部署exporter,則需要Kubernetes 1.6或更高版本。
Grafana 5.0.0+

特征

  • 該應用程序使用Kubernetes標簽來過濾Pod指標。Kubernetes集群往往有很多Pod和很多Pod指標。Pod / Container儀表板利用了pod標簽,因此可以輕松找到相關的pod
  • 輕松安裝exporter,從Grafana一鍵式部署,或使用kubectl手動部署
  • Heapster中不可用的群集級別指標,例如CPU容量與CPU使用率。

集群指標

  • Pod容量/用途
  • 內存容量/使用率
  • CPU容量/使用率
  • 磁盤容量/使用率
  • 節點,容器和容器概述

節點指標

  • 中央處理器
  • 可用內存
  • 每個CPU的負載
  • 讀取IOPS
  • 寫入IOPS
  • 實用率
  • 網絡流量/秒
  • 網絡數據包/秒
  • 網絡錯誤/秒

Pod/容器指標

  • 內存使用情況
  • 網絡流量
  • CPU使用率
  • 讀取IOPS
  • 寫入IOPS

2.2、插件安裝

進入pod或者將插件離線下載后上傳到/var/lib/grafana/plugins目錄

# kubectl get pods -n kube-system -l app=grafana
NAME        READY   STATUS    RESTARTS   AGE
grafana-0   1/1     Running   0          123m
# kubectl -n kube-system exec -it grafana-0 bash
bash-5.0$ grafana-cli plugins install grafana-kubernetes-app
installing grafana-kubernetes-app @ 1.0.1
from: https://grafana.com/api/plugins/grafana-kubernetes-app/versions/1.0.1/download
into: /var/lib/grafana/plugins

✔ Installed grafana-kubernetes-app successfully

Restart grafana after installing plugins . <service grafana-server restart>

提示需要重啟服務,此處直接刪除pod,讓其重新拉起即可

# kubectl -n kube-system delete pods grafana-0

2.3、插件配置

重新訪問grafana界面查看插件列表,找到kubernetes插件並啟用

選擇創建集群

配置項如下

  • name:名稱,自定義
  • URL:api-server的地址
  • Auth:認證信息,勾選TLS Client AuthWith CA Cert
    • TLS Auth Details
      此處配置的是插件連接k8s的認證信息,這里我們可以新建一個kubeconfig文件也可以沿用kubectl使用的kubeconfig文件,在kubeconfig文件中的內容使經過base64編碼后的,在這里需要將這些內容解碼,類似echo "key內容" | base64 -d
      • CA Cert 對應 kubeconfig中的certificate-authority-data
      • Client Cert 對應 kubeconfig中的client-certificate-data
      • Client Key 對應 kubeconfig中的client-key-data
  • Datasource:數據源,選擇之前配置好的prometheus
  • 除上面內容外,還可以選擇通過此插件自動在集群中注入prometheus的配置及部署node_exporter,這里已經部署過了,就不再部署了

如上圖所示,填寫完后點擊Save,然后等待一會兒查看是否成功

2.4、插件效果

按照上面的操作成功配置后,插件會自動在grafana中添加多個實用的dashboard,下圖展示其中一個

3、devopsprodigy-kubegraf-app插件

插件地址

3.1、插件介紹

DevOpsProdigy KubeGraf是一個非常優秀的Grafana Kubernetes插件,是Grafana官方的Kubernetes插件的升級版本,該插件可以用來可視化和分析Kubernetes集群的性能,通過各種圖形直觀的展示了Kubernetes集群的主要服務的指標和特征,還可以用於檢查應用程序的生命周期和錯誤日志。

要求
要安裝使用 DevOpsProdigy KubeGraf 插件需要滿足以下要求:

  • Grafana > 5.0.0 版本
  • 需要在Kubernetes集群上部署Prometheus + node-exporter + kube-state-metrics
  • 依賴Grafana-piechart-panel插件

特征
該插件包含3個主要的信息頁面,其中包含有關Kubernetes集群的詳細信息

應用概述
該插件可以顯示 Kubernetes 集群上面的應用的一些基本監控信息

  • 應用程序邏輯圖
  • Kubernetes 對象的分布
  • 可視化應用程序的生命周期和基本特征信息
  • 在集群中允許訪問的服務端口的描述信息

集群狀態

  • 關於群集及其中的節點的狀態的摘要
  • 監視應用程序生命周期的詳細信息
  • 集群服務器中服務所在位置的可視化表示

節點概述

  • 集群節點摘要
  • 有關已用和已分配資源(RAM,CPU利用率)以及容器數量的信息
  • 豆莢的物理分布

Dashboards
除了在插件主頁上提供了常見的信息之外,該插件還提供了另外5個Dashboard供我們來跟蹤集群的各種性能指標

  • node dashboard
    帶有節點指標的Dashboard,它可以顯示資源的使用情況,例如CPU利用率、內存消耗、空閑/iowait模式下的CPU時間百分比以及磁盤和網絡的狀態
  • pod dashboard
    可以根據所選擇的Pod來顯示對應的資源使用情況
  • deployments dashboard
    Deployment為維度來顯示對應的資源對象相關的資源使用情況
  • statefulsets dashboard
    Statefulset為維度來顯示對應的資源對象相關的資源使用情況
  • daemonsets dashboard
    Daemonset為維度來顯示對應的資源對象相關的資源使用情況

上面三個Dashboard顯示了可用/不可用的應用程序的副本數量以及這些應用程序的容器狀態,還會跟蹤容器的重啟

3.2、插件安裝

進入pod或者將插件離線下載后上傳到/var/lib/grafana/plugins目錄

# kubectl get pods -n kube-system -l app=grafana
NAME        READY   STATUS    RESTARTS   AGE
grafana-0   1/1     Running   0          130m
# kubectl -n kube-system exec -it grafana-0 bash
bash-5.0$ grafana-cli plugins install devopsprodigy-kubegraf-app
installing devopsprodigy-kubegraf-app @ 1.3.0
from: https://grafana.com/api/plugins/devopsprodigy-kubegraf-app/versions/1.3.0/download
into: /var/lib/grafana/plugins

✔ Installed devopsprodigy-kubegraf-app successfully 

Restart grafana after installing plugins . <service grafana-server restart>

bash-5.0$ grafana-cli plugins install Grafana-piechart-panel #按照前面的提示如果沒有安裝Grafana-piechart-panel插件也需要安裝
installing Grafana-piechart-panel @ 1.5.0
from: https://grafana.com/api/plugins/Grafana-piechart-panel/versions/1.5.0/download
into: /var/lib/grafana/plugins

✔ Installed Grafana-piechart-panel successfully 

Restart grafana after installing plugins . <service grafana-server restart>

提示需要重啟服務,此處直接刪除pod,讓其重新拉起即可

# kubectl -n kube-system delete pods grafana-0

3.3、插件配置

同樣的,重新訪問grafana界面查看插件列表,找到DevOpsProdigy KubeGraf插件並啟用
點擊 Set up your first k8s-cluster 創建一個新的Kubernetes集群

配置和Kubernetes App插件一樣,這里不再贅述,如圖所示

3.4、插件效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM