您好,登錄后才能下訂單哦!
我現(xiàn)在目前的讀者都肯定通過prometheus這個監(jiān)控吧,那么它到底是什么呢? prometheus是一個基于時(shí)間序列(time_series)的監(jiān)控軟件,它是由soundCloud
開源監(jiān)控告警解決方案,從2012年開始編寫代碼,再到2015年github上開源,已經(jīng)很多大公司使用,2016年prometheus成為繼kubernetes后,第二個CNCF(cloud native Computing Foundation云原生計(jì)算基金會)的成員。2017年底發(fā)布了基于全新存儲層的2.0版本,能更好地與容器平臺、云平臺配合,并同時(shí)支持告警。
下面這張圖是官方的架構(gòu)圖
從上圖中我們也能看出來prometheus的主要包含的模塊,pushgateway,exporters,retrieval,TSDB(存儲)HTTP,PromeQl,Alertmanager。
他的大致邏輯是這樣的:
1,prometheus會定期從靜態(tài)配置的targets或者服務(wù)發(fā)現(xiàn)的targets中向部署在被監(jiān)控端的服務(wù)器上請求exporters來獲取數(shù)據(jù),或者由客戶端通過定時(shí)任務(wù)定期向pushgateway發(fā)送數(shù)據(jù),然后有pushgateway向prometheus發(fā)送數(shù)據(jù)。
2,當(dāng)新的數(shù)據(jù)大于配置內(nèi)存緩存區(qū)的時(shí)候,prometheus會將數(shù)據(jù)持久化到磁盤,(如果使用remote storage將持久到云端)
3,prometheus可以配合grafana通過特定的表達(dá)是來獲取我們想要的監(jiān)控圖形
4,prometheus可以配置rules(規(guī)則),然后定時(shí)查詢數(shù)據(jù),當(dāng)出發(fā)告警條件的時(shí)候,會通知alertmanager推送到配置的告警信息上去
4,alertmanager收到告警信息的時(shí)候,可以根據(jù)配置,聚合,去重,降噪最后發(fā)送警告
1,易于管理
prometheus核心部分只有一個單獨(dú)的用golang編寫的二進(jìn)制文件,不存在任何的第三方依賴(數(shù)據(jù)庫,緩存等)。唯一需要做的就是本地磁盤和內(nèi)存,所以他可以運(yùn)行在各種平臺。
prometheus是基于pull和push模型的架構(gòu)方式,在任何地方搭建我們的監(jiān)控系統(tǒng),對于一些復(fù)雜的情況,還可以使用prometheus服務(wù)發(fā)現(xiàn)(server Discovery)的能力動態(tài)管理監(jiān)控目標(biāo)。
2,監(jiān)控服務(wù)的內(nèi)部運(yùn)行狀態(tài)
prometheus鼓勵用戶監(jiān)控服務(wù)的內(nèi)部狀態(tài),基于prometheus豐富的client庫,用戶可以輕松的在應(yīng)用程序中添加的對prometheus的支持,從而讓用戶可以獲取服務(wù)和應(yīng)用內(nèi)部真正的運(yùn)行狀態(tài)。
3,強(qiáng)大的數(shù)據(jù)模型
所有采集的監(jiān)控?cái)?shù)據(jù)均以指標(biāo)(metric)的形式保存在內(nèi)置的時(shí)間序列數(shù)據(jù)庫當(dāng)中(TSDB)。所有的樣本除來基本的指標(biāo)名稱以外,還包含一組用于描述該樣本特征的標(biāo)簽。
4,強(qiáng)大的查詢語言PromQL
prometheus內(nèi)置來一個強(qiáng)大的數(shù)據(jù)查詢語言promQL,通過PromQL可以實(shí)現(xiàn)對監(jiān)控?cái)?shù)據(jù)的查詢/聚合。同時(shí)PromeQL也被應(yīng)用于數(shù)據(jù)可視化(grafana)以及告警中。
5,高效
對于監(jiān)控系統(tǒng)而言,大量的監(jiān)控任務(wù)必然導(dǎo)致有大量的數(shù)據(jù)產(chǎn)生。而Prometheus可以高效地處理這些數(shù)據(jù),對于單一Prometheus Server實(shí)例而言它可以處理:
6,可擴(kuò)展性
Prometheus是如此簡單,因此你可以在每個數(shù)據(jù)中心、每個團(tuán)隊(duì)運(yùn)行獨(dú)立的Prometheus Sevrer。Prometheus對于聯(lián)邦集群的支持,可以讓多個Prometheus實(shí)例產(chǎn)生一個邏輯集群,當(dāng)單實(shí)例Prometheus Server處理的任務(wù)量過大時(shí),通過使用功能分區(qū)(sharding)+聯(lián)邦集群(federation)可以對其進(jìn)行擴(kuò)展。
7,易于集成
因?yàn)閜rometheus采用的是http的協(xié)議來進(jìn)行通信獲取數(shù)據(jù)的,所以所有語言只要支持http協(xié)議都可以被當(dāng)作exporters來使用
8,可視化
prometheus配合grafana制定精美的監(jiān)控圖表
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。