(一)prometheus 監控系統

prometheus 基本介紹

Prometheus 是一套開源的監控,報警、時間序列數據庫的組合,起始是由 SoundCloud 公司開發的。隨着發展,越來越多公司和組織接受採用Prometheus,社區也十分活躍,他們便將它獨立成開源項目,並且有公司來運作。現如今Prometheus使用非常廣泛,因爲它不僅僅可以支持容器,同時還可以監控傳統的架構與應用。

prometheus 整體架構

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-oBdBQ7nT-1585478810385)(E:\知識點總結\Prometheus\assets\prometheus_1.png)]

prometheus 數據採集

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Ynya8EHT-1585478810388)(E:\知識點總結\Prometheus\assets\prometheus_2.png)]

  • pull 方式:
    該方式爲拉取形式,首先需要在 Client 安裝 exporter,exporters 以守護進程的模式運行,然後開始採集數據每個exporters 程序爲一個單獨的 http-server,因爲它可以對 http 的請求做出響應,並返回 metric(K/V數據)而Prometheus-server 則通過 pull 的形式去訪問每個節點上的 exporter 並採集所需要的數據,默認爲該方式。

  • push 方式:
    該方式爲推送形式,如需使用 push 方式,則需在服務端或者客戶端上安裝 pushgateway 插件 pushgateway 我們可以將其理解爲一個代理,它位於客戶端與服務端之間,pushgateway 先接收指標,然後 pushgateway 再推送給prometheus-server,這裏的 pushgateway 不一定要安裝客戶端,也可以安裝在服務端甚至其它節點。

prometheus 指標類型

指標的英文叫做 metrics,metrics 就是一組K/V數據,可以理解爲 metrics 是對採集過來的數據的一種統稱
而非一個具體的數值或者指標,因爲指標的類型是多樣的:

  • conter:計數器
  • gauge:儀表盤
  • histogram:直方圖
  • summary:摘要

prometheus 組件組成

`Prometheus-Server組件:``Prometheus-Server爲Prometheus組件的核心,負責數據的採集與存儲,並提供PromSQL查詢語言支持``Prometheus-Server可以通過靜態配置管理監控目標,也可以配合使用Service Discovery的方式動態管理監控目標,並從這些監控目標中獲取數據``在Prometheus當中,它內置了Express Browser UI,通過它,我們可以直接使用PromSQL查詢語言來實現數據的查詢以及可視化` `Exporters組件:``Exporters相當於Zabbix當中的Agent,它將監控數據採集的端點通過HTTP服務的形式暴露給Prometheus-Server``而Prometheus-Server則通過訪問這個Exporter提供的Endpoint端點,即可獲取到需要採集的監控數據` `AlertManager組件:``此組件爲警報管理器,除了提供基本的告警功能以外,還主要提供了分組,抑制,靜默等高級告警特性``在Prometheus Server中支持基於PromQL創建告警規則,如果滿足PromQL定義的規則,則會產生一條告警,而告警的後續處理流程則由AlertManager進行管理` `PushGateway組件:``Prometheus的數據採集基於Pull模型所設計,也就是拉取,所以在網絡環境當中Exporter需要能夠直接與Prometheus-Server通信``那如果不是直連呢?那就要通過PushGateway進行中轉,PushGateway將監控數據主動Push到Gateway當中``而Prometheus-Server則可以採用同樣Pull的方式從PushGateway中獲取到監控數據,總之相當於一個代理,同時也是一個獨立的服務,它接收指標而不是探測指標`
  • Prometheus-Server 組件:
    Prometheus-Server 爲 Prometheus 組件的核心,負責數據的採集與存儲,並提供 PromSQL 查詢語言支持Prometheus-Server 可以通過靜態配置管理監控目標,也可以配合使用 Service Discovery 的方式動態管理監控目標,並從這些監控目標中獲取數據在 Prometheus 當中,它內置了 Express Browser UI,通過它,我們可以直接使用PromSQL 查詢語言來實現數據的查詢以及可視化

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-7fHvjf9C-1585478810390)(E:\知識點總結\Prometheus\assets\prometheus_3.png)]

  • Exporters 組件:
    Exporters 相當於 Zabbix 當中的 Agent,它將監控數據採集的端點通過 HTTP 服務的形式暴露給 Prometheus-Server
    而 Prometheus-Server 則通過訪問這個 Exporter 提供的 Endpoint 端點,即可獲取到需要採集的監控數據

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-1S3OHt9s-1585478810392)(E:\知識點總結\Prometheus\assets\prometheus_4.png)]

  • AlertManager 組件:
    此組件爲警報管理器,除了提供基本的告警功能以外,還主要提供了分組,抑制,靜默等高級告警特性在 Prometheus Server 中支持基於 PromQL 創建告警規則,如果滿足 PromQL 定義的規則,則會產生一條告警,而告警的後續處理流程則由 AlertManager 進行管理

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dfwvkdb1-1585478810393)(E:\知識點總結\Prometheus\assets\prometheus_5.png)]

  • PushGateway 組件:
    Prometheus 的數據採集基於 Pull 模型所設計,也就是拉取,所以在網絡環境當中 Exporter 需要能夠直接與Prometheus-Server 通信那如果不是直連呢?那就要通過 PushGateway 進行中轉,PushGateway 將監控數據主動Push 到 Gateway 當中而Prometheus-Server 則可以採用同樣Pull的方式從 PushGateway 中獲取到監控數據,總之相當於一個代理,同時也是一個獨立的服務,它接收指標而不是探測指標

式從 PushGateway 中獲取到監控數據,總之相當於一個代理,同時也是一個獨立的服務,它接收指標而不是探測指標

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8QrU3OWp-1585478810394)(E:\知識點總結\Prometheus\assets\prometheus_6.png)]

總結

只有注入思想的博客纔是好的博客

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