普羅米修斯011

Prometheus Server是Prometheus組件中的核心部分,負責實現對監控數據的獲取,存儲以及查詢。 Prometheus Server可以通過靜態配置管理監控目標,也可以配合使用Service Discovery的方式動態管理監控目標,並從這些監控目標中獲取數據。其次Prometheus Server需要對採集到的監控數據進行存儲,Prometheus Server本身就是一個時序數據庫,將採集到的監控數據按照時間序列的方式存儲在本地磁盤當中。最後Prometheus Server對外提供了自定義的PromQL語言,實現對數據的查詢以及分析。
Prometheus Server內置的Express Browser UI,通過這個UI可以直接通過PromQL實現數據的查詢以及可視化。
Prometheus Server的聯邦集羣能力可以使其從其他的Prometheus Server實例中獲取數據,因此在大規模監控的情況下,可以通過聯邦集羣以及功能分區的方式對Prometheus Server進行擴展。

Exporter將監控數據採集的端點通過HTTP服務的形式暴露給Prometheus Server,Prometheus Server通過訪問該Exporter提供的Endpoint端點,即可獲取到需要採集的監控數據。
一般來說可以將Exporter分爲2類:
直接採集:這一類Exporter直接內置了對Prometheus監控的支持,比如cAdvisor,Kubernetes,Etcd,Gokit等,都直接內置了用於向Prometheus暴露監控數據的端點。
間接採集:間接採集,原有監控目標並不直接支持Prometheus,因此我們需要通過Prometheus提供的Client Library編寫該監控目標的監控採集程序。例如: Mysql Exporter,JMX Exporter,Consul Exporter等。

在Prometheus Server中支持基於PromQL創建告警規則,如果滿足PromQL定義的規則,則會產生一條告警,而告警的後續處理流程則由AlertManager進行管理。在AlertManager中我們可以與郵件,Slack等等內置的通知方式進行集成,也可以通過Webhook自定義告警處理方式。AlertManager即Prometheus體系中的告警處理中心。

由於Prometheus數據採集基於Pull模型進行設計,因此在網絡環境的配置上必須要讓Prometheus Server能夠直接與Exporter進行通信。 當這種網絡需求無法直接滿足時,就可以利用PushGateway來進行中轉。可以通過PushGateway將內部網絡的監控數據主動Push到Gateway當中。而Prometheus Server則可以採用同樣Pull的方式從PushGateway中獲取到監控數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章