1.Prometheus 的主要優(yōu)勢(shì)有:
- 多維數(shù)據(jù)模型(由指標(biāo)名稱 和 key/value對(duì)標(biāo)簽標(biāo)識(shí)的時(shí)間序列數(shù)據(jù)組成)的多維數(shù)據(jù)模型。
- 強(qiáng)大的查詢語(yǔ)言 PromQL。
- 不依賴分布式存儲(chǔ);單個(gè)服務(wù)節(jié)點(diǎn)具有自治能力。
- 時(shí)間序列數(shù)據(jù)是服務(wù)端通過(guò) HTTP 協(xié)議主動(dòng)拉取獲得的。
- 也可以通過(guò)中間網(wǎng)關(guān)來(lái)推送時(shí)間序列數(shù)據(jù)。
- 可以通過(guò)靜態(tài)配置文件或服務(wù)發(fā)現(xiàn)來(lái)獲取監(jiān)控目標(biāo)。
- 支持多種類型的圖表和儀表盤。

[圖片上傳中...(image.png-df7073-1614847011246-0)]
在選定Prometheus之前,對(duì)Zabbix、小米的Open-Falcon、Prometheus三者進(jìn)行了選型,由于數(shù)據(jù)存儲(chǔ)高性能與占用空間少、對(duì)容器的支持度高、部署和維護(hù)成本低等優(yōu)勢(shì)最終選定了。
從左側(cè)說(shuō)起
1.Exporter是Prometheus數(shù)據(jù)采集組件的總稱。它負(fù)責(zé)從處mysql、node、redis等目標(biāo)主機(jī)搜集數(shù)據(jù),并將其轉(zhuǎn)化為Prometheus支持的時(shí)間序列數(shù)據(jù)格式。Prometheus Server的Retrieval模塊通過(guò)http定時(shí)將時(shí)序數(shù)據(jù)pull回來(lái).
2.Pushgateway用于支持短生命周期(short-lived)數(shù)據(jù)收集。將Push轉(zhuǎn)化為Pull。
3.Prometheus也可以從其它的Prometheus Sever獲取數(shù)據(jù),組建聯(lián)邦集群。
他的基本原理是通過(guò)HTTP周期性抓取被監(jiān)控組件的狀態(tài),只要符合Prometheus定義的數(shù)據(jù)格式,就可以接入Prometheus監(jiān)控。
中間部分:
Prometheus Server,Retrieval模塊定時(shí)拉取數(shù)據(jù),并通過(guò)存儲(chǔ)模塊保存時(shí)間序列數(shù)據(jù)。PromQL為Prometheus提供的查詢語(yǔ)法,通過(guò)執(zhí)行PromQL查詢統(tǒng)計(jì)監(jiān)控?cái)?shù)據(jù)。
右側(cè)是報(bào)警和頁(yè)面展現(xiàn),
Prometheus將報(bào)警推送到alertmanger,然后通過(guò)alertmanger對(duì)報(bào)警進(jìn)行處理后發(fā)送到郵箱、微信等消息軟件。
數(shù)據(jù)展現(xiàn)除了Prometheus自帶的WebUI,還可以通過(guò)市面上比較流行的Grafana等組件查詢Prometheus監(jiān)控?cái)?shù)據(jù)。
Prometheus總體流程: 數(shù)據(jù)采集-->匯總-->處理-->存儲(chǔ)-->展示與報(bào)警。