微信高端網(wǎng)站建設(shè)中國國家培訓(xùn)網(wǎng)官網(wǎng)
目錄
- 1.Prometheus
- 1.1.什么是Prometheus
- 1.2.Prometheus的工作流程
- 1.3.Prometheus的組件有哪些
- 1.4.Prometheus有什么特點
- 1.5.Metric的幾種類型?分別是什么?
- 1.6.Prometheus的優(yōu)點和缺點
- 1.7.Prometheus怎么采集數(shù)據(jù)
- 1.8.Prometheus怎么獲取采集對象
- 1.9.Prometheus的配置文件組成
- 1.10.Prometheus有什么高可用方案
- 1.11.Prometheus有哪幾種服務(wù)發(fā)現(xiàn)
- 1.12.Prometheus怎么監(jiān)控k8s
- 2.alertmanager
- 2.1.alertmanager是什么
- 2.2.alertmanager處理告警的流程
- 2.3.alertmanager怎么實現(xiàn)高可用
- 3.exporter
- 3.1.exporter的類型
- 3.2.什么是白盒監(jiān)控
- 3.3.什么是黑盒監(jiān)控
- 4.pushgateway
- 4.1.pushgateway是什么
- 4.2.pushgateway能做什么
- 4.2.pushgateway有什么缺點
架構(gòu)圖:
1.Prometheus
1.1.什么是Prometheus
Prometheus是一款開源的監(jiān)控系統(tǒng),由SoundCloud開發(fā),用于收集、存儲和查詢時間序列數(shù)據(jù)
,其數(shù)據(jù)模型是基于鍵-值對的時序數(shù)據(jù)
。
1.2.Prometheus的工作流程
- Prometheus server 定期從配置的targets中拉取metrics數(shù)據(jù),并存儲在本地的時間序列數(shù)據(jù)庫中。
- Prometheus會根據(jù)用戶定義的規(guī)則對這些時間序列進行計算、聚合,并觸發(fā)警報通知用戶。
- Prometheus收集的數(shù)據(jù)回在其內(nèi)置的web UI中或grafana中提供可視化功能。
1.3.Prometheus的組件有哪些
- Prometheus Server:Prometheus服務(wù)器
- Client Libraries:檢測應(yīng)用程序代碼的客戶端庫
- Push Gateway:用于支持短期臨時或批量計劃任務(wù)工作的數(shù)據(jù)匯聚節(jié)點
- Alertmanager:用于告警
- Exporter:收集監(jiān)控樣本數(shù)據(jù)
1.4.Prometheus有什么特點
- 通過PromQL實現(xiàn)多維度數(shù)據(jù)模型的靈活查詢。
- 定義了開放指標數(shù)據(jù)的標準,自定義探針(如Exporter等),編寫簡單方便。
- PushGateway組件讓這款監(jiān)控系統(tǒng)可以接收監(jiān)控數(shù)據(jù)。
- 提供了VM和容器化的版本。
1.5.Metric的幾種類型?分別是什么?
有四種
- counter:其值從0開始只能增加,不會減少;重啟進程后,會被重置;適用于跟蹤事件的數(shù)量或大小,可以用來記錄服務(wù)的請求次數(shù)、任務(wù)完成數(shù)、錯誤發(fā)生次數(shù)。
- gauge:是一種常規(guī)指標,反映系統(tǒng)當前狀態(tài)的快照,是對一個值的瞬時測量。
- histogram:用于表示在一段時間范圍內(nèi)對數(shù)據(jù)進行采樣,對指定區(qū)間以及總數(shù)進行分組統(tǒng)計。
- summary:常用于跟蹤與時間相關(guān)的數(shù)據(jù)。
1.6.Prometheus的優(yōu)點和缺點
- 優(yōu)點:支持多語言客戶端;支持本地和第三方遠程存儲,單機性能強勁;高效存儲,平均一個采樣數(shù)據(jù)占用3.5B左右;可擴展性強;精確告警;支持靜態(tài)文件配置和動態(tài)發(fā)現(xiàn)等自動發(fā)現(xiàn)機制等
- 缺點:不適合存儲事件或者日志;不會針對大量的歷史數(shù)據(jù)進行存儲等
1.7.Prometheus怎么采集數(shù)據(jù)
Prometheus調(diào)用HTTP GET請求或metrics數(shù)據(jù)接口獲取數(shù)據(jù)。
1.8.Prometheus怎么獲取采集對象
通過靜態(tài)和動態(tài)兩種方式;靜態(tài)配置是一種傳統(tǒng)的服務(wù)發(fā)現(xiàn)方式,適用于固定的監(jiān)控環(huán)境、IP地址和統(tǒng)一服務(wù)接口場景;動態(tài)發(fā)現(xiàn)方式適用于云環(huán)境使用。
1.9.Prometheus的配置文件組成
Prometheus配置文件由以下幾部分組成:
- global:用于定義全局變量和設(shè)置相關(guān)參數(shù)
- rule:用于定義報警規(guī)則和報警條件
- alertmanager:用于定義報警器的配置信息
- scrape:用于定義收集數(shù)據(jù)的配置信息
1.10.Prometheus有什么高可用方案
- 多實例Prometheus:相同的配置,共同接收處理數(shù)據(jù),可搭配負載均衡使用
- 多實例+遠程存儲:解決了上條架構(gòu)存在的數(shù)據(jù)一致性、持久化、遷移性、擴展性等問題
- 聯(lián)邦集群:可以將監(jiān)控采集任務(wù)以分治法的形式劃分給不同的Prometheus實例分別進行處理,以實現(xiàn)功能分區(qū),這種架構(gòu)有利于水平擴展
- thanos集群:Thanos和 Prometheus無縫集成,并為 Prometheus帶來了全局視圖和不受限制的歷史數(shù)據(jù)存儲能力
1.11.Prometheus有哪幾種服務(wù)發(fā)現(xiàn)
- 基于文件服務(wù)發(fā)現(xiàn)
- 基于consul服務(wù)發(fā)現(xiàn)
- 基于DNS的服務(wù)發(fā)現(xiàn)
1.12.Prometheus怎么監(jiān)控k8s
通過kubernetes API來監(jiān)控k8s集群,可以監(jiān)控k8s組件和應(yīng)用程序運行狀態(tài),收集k8s集群指標存儲在prometheus服務(wù)器中。
2.alertmanager
2.1.alertmanager是什么
alertmanager是一款開源的告警管理工具,可以聚合來自Prometheus服務(wù)器的告警,并將其發(fā)送到用戶指定的接收者。
2.2.alertmanager處理告警的流程
從源接收告警然后將其聚合為單個通知,接著對告警進行路由,將其發(fā)送到配置的通知目標,還可以對告警進行處理,例如抑制和延遲。
2.3.alertmanager怎么實現(xiàn)高可用
通過Gssip機制為多個alertmanager之間提供了信息傳遞的機制,確保及時在多個Alertmanager分別接收到相同告警信息的情況下,也只有一個告警通知被發(fā)送給Receiver。
實現(xiàn)方式是通過配置啟動參數(shù)。
3.exporter
3.1.exporter的類型
- 直接采集型:這類Exporter直接內(nèi)置了相應(yīng)的應(yīng)用程序,用于向Prometheus直接提供Target數(shù)據(jù)支持,例如cAdvisor、Kubernetes等
- 間接采集型:原始監(jiān)控目標并不直接支持Prometheus,需要我們使用Prometheus提供的Client Library編寫該監(jiān)控目標的監(jiān)控采集程序,如:Node exporter
3.2.什么是白盒監(jiān)控
需要把對應(yīng)的Exporter程序安裝到被監(jiān)控的目標主機上,從而實現(xiàn)對主機各種資源及其狀態(tài)的數(shù)據(jù)采集工作的方式叫做白盒監(jiān)控。
3.3.什么是黑盒監(jiān)控
無法直接通過安裝exporter監(jiān)控到目標,Blackbox Exporter無須安裝在被監(jiān)控的目標環(huán)境中,用戶只需要將其安裝在與Prometheus和被監(jiān)控目標互通的環(huán)境中,通過HTTP、HTTPS、DNS、TCP、ICMP等方式對網(wǎng)絡(luò)進行探測監(jiān)控,還可以探測SSL證書過期時間。
4.pushgateway
4.1.pushgateway是什么
Pushgateway是一個獨立的服務(wù)組件,可在HTTP REST API上接收Prometheus指標,位于發(fā)送指標的應(yīng)用服務(wù)程序和Prometheus服務(wù)器之間。Pushgateway接收指標,然后將其作為目標進行抓取,以便將指標提供給Prometheus服務(wù)器。
4.2.pushgateway能做什么
用于處理Prometheus無法直接去拉取各個目標的監(jiān)控數(shù)據(jù),目標資源的生命周期太短,目標資源沒有可以抓取的端點等情況
4.2.pushgateway有什么缺點
- 單點故障,可能出現(xiàn)性能瓶頸
- 會喪失Prometheus通過UP監(jiān)控指標檢查實例健康狀況的功能
- Pushgateway會對推送給它的所有監(jiān)控數(shù)據(jù)進行持久化,即使被監(jiān)控服務(wù)已經(jīng)下線銷毀了,Prometheus還是會獲取到過期的歷史監(jiān)控數(shù)據(jù)