如何使用 Helm 在 K8s 上整合 Prometheus 和 Grafana|Part 1
本系列將分成三個部分,您將學習如何使用 Helm 在 Kubernetes 上整合 Prometheus 和 Grafana,以及如何在 Grafana 上建立一個簡單的控制皮膚。Prometheus 和 Grafana 是 Kubernetes 比較受歡迎的兩種開源監控工具。 學習如何使用 Helm 整合這兩個工具,使您能夠輕鬆監控 Kubernetes 叢集並排除故障。您還可以更深入地瞭解叢集的健康狀況和效能,它將跟蹤 Kubernetes 叢集上的資源和效能指標。
如前所述,Prometheus 和 Grafana 是用於監控容器編排平臺的流行工具。當下流行的兩個容器編排工具是 Docker Swarm 和 Kubernetes。第一部分將為您介紹使用 Prometheus 和 Grafana 的前提條件,瞭解什麼是 Prometheus 和 Grafana等。
前提條件
要跟上本指南,你需要:
- 安裝 Docker:要在你的機器上安裝 Docker,請檢視 Docker 官方文件
- 安裝 Kubectl:這可以讓你與 Kubernetes 叢集通訊。要在本地機器上安裝 Kubectl 工具,請遵循 Kubectl 官方文件指南
- 掌握 Kubernetes 的基本知識:請確保你對 Kubernetes 有一定的瞭解。您可以閱讀 Kubernetes 官方文件 來學習 K8s 相關知識。
- 建立 Kubernetes 叢集:在Kubernetes 叢集上安裝 Prometheus 和 Grafana。本指南將使用 Minikube (快速指南 Kubernetes 叢集。
什麼是 Prometheus?
Prometheus 是一款開源 DevOps 工具。它為 Kubernetes 等容器編排平臺提供監控和實時警報功能,以時間序列資料的形式收集和儲存來自平臺的指標。其次,它具有監控容器編排平臺的開箱即用功能,並且是 Grafana 等其他資料視覺化庫的資料來源。
Prometheus 從 Kubernetes 叢集收集的指標包括:
- Kubernetes 叢集健康狀況。
- CPU 狀態
- 記憶體使用情況
- Kubernetes 節點狀態。
- 潛在效能瓶頸報告。
- 效能指標
- 伺服器資源
什麼是 Grafana?
Grafana 是一款用於分析和互動式視覺化的多平臺、開源線上應用程式。當你將它連線到受支援的資料來源(如 Prometheus)時,它能提供:
- 互動式控制皮膚
- 互動式圖表
- 視覺化圖表
- 網路告警
無論資料來源是什麼,Grafana 都能為您查詢、視覺化和理解您的指標。除了 Prometheus,Grafana 還支援其他幾個資料來源,例如:
- InfluxDB
- AzureMonitor
- Datadog
- Graphite
- AWS CloudWatch。
- PostgreSQL
- Microsoft SQL Server (MSSQL)。
- Elasticsearch
- Google Cloud Monitoring
- MySQL
- Alertmanager
- Loki
您可以選擇從頭開始建立控制皮膚,或者匯入 Grafana 已經提供的控制皮膚,並對其進行定製以滿足您的需求。大多數 DevOps 專業人員都使用 Grafana 和 Prometheus 來建立具有資料視覺化控制皮膚的強大時序資料庫。
在這裡,我們將建立一個儀表板,用於視覺化從 Prometheus 資料來源收集的指標。
Prometheus 的架構
下圖顯示了 Prometheus 的元件和工作原理:
這些都是 Prometheus 的元件:
- Prometheus Server是 Prometheus 架構的核心元件。它是實際監控工作進行的地方。
- Alertmanager 透過電子郵件和其他通訊渠道(如 Slack)向使用者傳送告警。
- Pushgateway 可支援臨時任務。它允許使用者將時間序列資料推送到 Prometheus 目標。它還能處理短期任務的指標。
Prometheus 伺服器可進一步分為三個元件:
- Data Retrieval Worker 從容器編排平臺中抓取並收集度量資料。然後,它將指標轉換為時間序列資料。它從許多來源收集指標,這些來源在其設定中指定。
- Time Series Database 儲存來自資料檢索元件的時間序列資料。
- HTTP Server 響應時間序列資料的請求和 PromQL 查詢。然後,它將資訊顯示在網路使用者介面或儀表板上。它既可以使用 Grafana 等第三方平臺,也可以使用內建的 Prometheus Web UI。
設定 Prometheus 和 Grafana 以監控容器編排平臺的好處
設定 Prometheus 和 Grafana 進行監控能給我們帶來很多好處:
- 可以獲得一套完整的端到端解決方案,用於觀察和監控 Kubernetes 叢集。
- 可以使用 Prometheus PromQL 查詢語言查詢指標。
- 如果你有一個微服務架構,Prometheus 會同時跟蹤你的所有微服務。
- 當某個服務出現故障時,會立即發出警報。
- Grafana 儀表盤提供叢集的效能和健康狀況報告。
在 Kubernetes 上整合 Prometheus 和 Grafana 時,開發人員普遍採用兩種方法:
-
手動 Kubernetes 部署:在這種方法中,開發人員需要編寫 Kubernetes 部署和服務 YAML 檔案。需要為 Prometheus 和 Grafana 應用程式編寫 YAML。在 YAML 檔案中,指定在 Kubernetes 上整合 Prometheus 和 Grafana 的所有配置。然後,把這些檔案部署到 Kubernetes 叢集,以便 Prometheus 和 Grafana 正常工作。不過這種方法的弊端是開發人員可能會有很多 YAML 檔案,這對大多數 DevOps 實踐者來說都是令人厭煩的。如果在任何 YAML 檔案中出錯,將無法在 Kubernetes 上整合 Prometheus 和 Grafana。
-
使用 Helm:這是將應用容器部署到 Kubernetes 的 最簡單易行的方法。Helm 是 Kubernetes 的官方軟體包管理器。有了 Helm,你可以簡化 Kubernetes 應用程式的安裝、部署和管理。Helm 將 Kubernetes 應用程式打包並捆綁到 Helm Chart中。
Helm Chart是所有 YAML 檔案的集合:
- 部署
- 服務
- 金鑰
- ConfigMaps Manifests
您將使用這些檔案把應用容器部署到 Kubernetes。Helm 允許使用者下載已有清單 YAML 檔案的 Helm Chart,而不是為每個應用容器建立單獨的 YAML 檔案。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70026925/viewspace-3000719/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 部署 Prometheus 和 Grafana 到 k8sPrometheusGrafanaK8S
- K8s 部署 Prometheus + GrafanaK8SPrometheusGrafana
- Salesforce 如何使用 Grafana 和 Prometheus 大規模管理服務執行狀況 - grafanaSalesforceGrafanaPrometheus
- K8S的Kafka監控(Prometheus+Grafana)K8SKafkaPrometheusGrafana
- 使用Prometheus和Grafana監控Spring Boot應用PrometheusGrafanaSpring Boot
- Java服務端監控:Prometheus與Grafana的整合Java服務端PrometheusGrafana
- [Hyperf] 在 Hyperf 框架中使用 prometheus + grafana 部署基本的監控框架PrometheusGrafana
- helm在k8s上部署Elasticsearch和KibanaK8SElasticsearch
- 使用Prometheus、Grafana監控Artifactory實踐PrometheusGrafana
- K8s - Helm的使用K8S
- 使用Prometheus和Grafana進行系統監控和預測 - flightawarePrometheusGrafana
- 在 k8s 中部署 PrometheusK8SPrometheus
- 配置 Prometheus 伺服器監控和 Grafana 看板Prometheus伺服器Grafana
- 使用 helm 部署 k8s 資源K8S
- EggJS 雲原生應用硬核實戰(Kubernetes+Traefik+Helm+Prometheus+Grafana),提供 DemoJSPrometheusGrafana
- Prometheus MySQL監控+grafana展示PrometheusMySqlGrafana
- prometheus+grafana 監控nginxPrometheusGrafanaNginx
- 如何在 Ubuntu 上使用 Grafana 監控 DockerUbuntuGrafanaDocker
- K8S使用Helm安裝RabbitMQ和Redis的總結K8SMQRedis
- SpringBoot2.x整合Prometheus+Grafana【附原始碼+視訊】Spring BootPrometheusGrafana原始碼
- 容器編排系統K8s之Prometheus監控系統+Grafana部署K8SPrometheusGrafana
- 基於Grafana和Prometheus的監視系統(3):java客戶端使用GrafanaPrometheusJava客戶端
- docker部署監控Prometheus+GrafanaDockerPrometheusGrafana
- prometheus: 安裝grafana11.3PrometheusGrafana
- Prometheus + Grafana 監控平臺搭建PrometheusGrafana
- Grafana 系列文章(十四):Helm 安裝LokiGrafanaLoki
- Grafana、Prometheus、mtail-日誌監控GrafanaPrometheusAI
- Grafana+Prometheus 監控 MySql服務GrafanaPrometheusMySql
- 使用Prometheus+Grafana快速打造高逼格監控平臺PrometheusGrafana
- prometheus+grafana監控mysql最佳實踐PrometheusGrafanaMySql
- 效能監控工具之Grafana+Prometheus+ExportersGrafanaPrometheusExport
- Prometheus alertmanager郵件傳送+grafana告警展示PrometheusGrafana
- Kubernetes+Prometheus+Grafana部署筆記PrometheusGrafana筆記
- Istio採集指標prometheus+grafana方案指標PrometheusGrafana
- 二進位制部署 Prometheus+Alertmanager+GrafanaPrometheusGrafana
- 圖文詳解Prometheus監控+Grafana+Alertmanager告警安裝使用PrometheusGrafana
- Apisix閘道器-使用Grafana視覺化Apisix的Prometheus資料APIGrafana視覺化Prometheus
- Prometheus 整合 Node ExporterPrometheusExport