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