網站首頁 編程語言 正文
Prometheus 架構
本節討論 Prometheus Operator 的架構。
因為 Prometheus Operator 是基于 Prometheus 的,我們需要先了解一下 Prometheus。
Prometheus 是一個非常優秀的監控工具。準確的說,應該是監控方案。Prometheus 提供了數據搜集、存儲、處理、可視化和告警一套完整的解決方案。
Prometheus 的架構如下圖所示:
官網上的原始架構圖比上面這張要復雜一些,為了避免注意力分散,這里只保留了最重要的組件。
Prometheus Server
Prometheus Server 負責從 Exporter 拉取和存儲監控數據,并提供一套靈活的查詢語言(PromQL)供用戶使用。
Exporter
Exporter 負責收集目標對象(host, container...)的性能數據,并通過 HTTP 接口供 Prometheus Server 獲取。
可視化組件
監控數據的可視化展現對于監控方案至關重要。以前 Prometheus 自己開發了一套工具,不過后來廢棄了,因為開源社區出現了更為優秀的產品 Grafana。Grafana 能夠與 Prometheus 無縫集成,提供完美的數據展示能力。
Alertmanager
用戶可以定義基于監控數據的告警規則,規則會觸發告警。一旦 Alermanager 收到告警,會通過預定義的方式發出告警通知。支持的方式包括 Email、PagerDuty、Webhook 等.
Prometheus Operator 架構
Prometheus Operator 的目標是盡可能簡化在 Kubernetes 中部署和維護 Prometheus 的工作。其架構如下圖所示:
圖上的每一個對象都是 Kubernetes 中運行的資源。
Operator
Operator 即 Prometheus Operator,在 Kubernetes 中以 Deployment 運行。其職責是部署和管理 Prometheus Server,根據 ServiceMonitor 動態更新 Prometheus Server 的監控對象。
Prometheus Server
Prometheus Server 會作為 Kubernetes 應用部署到集群中。為了更好地在 Kubernetes 中管理 Prometheus,CoreOS 的開發人員專門定義了一個命名為?Prometheus
?類型的 Kubernetes 定制化資源。我們可以把?Prometheus
看作是一種特殊的 Deployment,它的用途就是專門部署 Prometheus Server。
Service
這里的 Service 就是 Cluster 中的 Service 資源,也是 Prometheus 要監控的對象,在 Prometheus 中叫做 Target。每個監控對象都有一個對應的 Service。比如要監控 Kubernetes Scheduler,就得有一個與 Scheduler 對應的 Service。當然,Kubernetes 集群默認是沒有這個 Service 的,Prometheus Operator 會負責創建。
ServiceMonitor
Operator 能夠動態更新 Prometheus 的 Target 列表,ServiceMonitor 就是 Target 的抽象。比如想監控 Kubernetes Scheduler,用戶可以創建一個與 Scheduler Service 相映射的 ServiceMonitor 對象。Operator 則會發現這個新的 ServiceMonitor,并將 Scheduler 的 Target 添加到 Prometheus 的監控列表中。
ServiceMonitor 也是 Prometheus Operator 專門開發的一種 Kubernetes 定制化資源類型。
Alertmanager
除了 Prometheus 和 ServiceMonitor,Alertmanager 是 Operator 開發的第三種 Kubernetes 定制化資源。我們可以把?Alertmanager
?看作是一種特殊的 Deployment,它的用途就是專門部署 Alertmanager 組件。
學習完架構,下一節我們將部署 Prometheus Operator。
原文鏈接:https://www.cnblogs.com/twobrother/p/11164391.html
相關推薦
- 2022-11-14 Swift?指針底層探索分析_Swift
- 2022-06-10 C#關鍵字Check簡單介紹_C#教程
- 2022-10-25 基于Pytorch使用GPU運行模型方法及可能出現的問題解決方法
- 2022-03-31 C#循環與循環控制的表達式樹實現_C#教程
- 2022-12-14 Qt設置窗體(QWidget)透明度的方法總結_C 語言
- 2024-01-08 Spring AOP 切面@Around注解的具體使用
- 2022-10-22 關于分布式鎖的三種實現方式_Redis
- 2022-07-26 使用SpringBoot?+?Redis?實現接口限流的方式_Redis
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支