前言
Prometheus(go語言開發)是一套開源的監控&報警&時間序列數 據庫的組合,適合監控docker容器,因為kubernetes(俗稱k8s)的流行帶動 了prometheus的發展,
官網地址:https://prometheus.io/docs/introduction/overview/
Prometheus 主要特征
- 多維度資料模型
- 靈活的查詢語言
- 不依賴分布式存盤
- 單個服務器節點是自主的 以HTTP方式,通過pull模型拉去時間序列資料
- 也可以通過中間網關支持push模型 通過服務發現或者靜態配置,來發現目標服務物件 支持多種多樣的圖表和界面展示
原理架構圖
下面給出一張關于Prometheus 的原理架構圖

圖中主要組件及作業流程介紹:
- Prometheus server 包含資料采集scrapes job, stores time series data;
- push gateway : Prometheus server的一個代理節點, 當一些節點沒有提供HTTP endpoint時,可將資料push到代理節點,Prometheus會去代理節點獲取資料;
- exporters: 資料采集插件, 暴露一個http服務的介面給Prometheus server定時抓取;
- alertmanager: 報警插件;
Prometheus 適用的監控目標
系統監控對于任何一個龐大的應用來說都是必不可少的,設想類似淘寶這樣的大型電商系統,支撐起正常高效運轉的背后是眾多的服務器組成的集群,設想如果在雙11期間,某一臺服務器發生了故障,沒有及時的監控到故障,帶來的損失將是不可估量的;
在《SRE: Google運維解密》一書中指出,監控系統需要能夠有效的支持白盒監控和黑盒監控,通過白盒能夠了解其內部的實際運行狀態,通過對監控指標的觀察能夠預判可能出現的問題,從而對潛在的不確定因素進行優化,而黑盒監控,常見的如HTTP探針,TCP探針等,可以在系統或者服務在發生故障時能夠快速通知相關的人員進行處理,通過建立完善的監控體系,從而達到以下目的:
- 長期趨勢分析:通過對監控樣本資料的持續收集和統計,對監控指標進行長期趨勢分析,例如,通過對磁盤空間增長率的判斷,我們可以提前預測在未來什么時間節點上需要對資源進行擴容;
- 對照分析:兩個版本的系統運行資源使用情況的差異如何?在不同容量情況下系統的并發和負載變化如何?通過監控能夠方便的對系統進行跟蹤和比較;
- 告警:當系統出現或者即將出現故障時,監控系統需要迅速反應并通知管理員,從而能夠對問題進行快速的處理或者提前預防問題的發生,避免出現對業務的影響
- 故障分析與定位:當問題發生后,需要對問題進行調查和處理,通過對不同監控監控以及歷史資料的分析,能夠找到并解決根源問題
- 資料可視化:通過可視化儀表盤能夠直接獲取系統的運行狀態、資源使用情況、以及服務運行狀態等直觀的資訊
Prometheus 優勢及適合場景
- Prometheus非常適合記錄任何純數字時間序列,它既適合以機器為中心的監視,也適合于高度動態的面向服務的體系結構的監視,在微服務世界中,它對多維資料收集和查詢的支持是一種特別的優勢
- Prometheus的設計旨在提高可靠性,使其成為中斷期間要使用的系統,以使您能夠快速診斷問題,每個Prometheus服務器都是獨立的,而不依賴于網路存盤或其他遠程服務,當基礎結構的其他部分損壞時,您可以依靠它,并且無需設定廣泛的基礎結構即可使用它
搭建步驟
下面來演示如何基于centos7快速搭建起Promethus的環境
1、環境準備
- 兩臺機器,Node1 ,用于安裝Promethus,Node2 用于被監控或者在上面安裝其他被監控的服務
- Promethus 安裝包,grafana安裝包以及node_exporter安裝包

2、Node1上傳prometheus-2.26.0 安裝包
上傳并解壓prometheus 安裝包
tar -zxvf prometheus....
mv prometheus-2.26.0.linux-amd64 prometheus2.26

3、啟動prometheus服務
默認情況下,不需要做任何的配置和修改,直接使用下面的命令啟動即可
./prometheus --config.file=prometheus.yml &
啟動成功后,prometheus 默認暴露的服務訪問埠為 9090 ,可以使用下面的命令檢查prometheus服務狀態 ,
ss -antlp | grep 9090

外部的web端可以訪問prometheus 的界面,需要開啟9090埠 ,然后瀏覽器直接訪問:http://IP:9090/

點擊下面的targets ,看到下面的界面


默認情況不做任何的配置,Promethus會對本機進行監控,可以點擊 上面的那個地址,將會跳轉到下面的界面,這是一堆大家很難看懂的資訊,其實這就是Promethus監控到的本機服務器相關引數資訊,

比如可以拿到其中某個引數資訊到主頁面的搜索框進行查詢,這也是Promethus經常操作的地方


配置監控其他服務器
上面的步驟中,我們在Node1機器上快速搭建起了Promethus的環境,設想需要監控另一臺服務器Node2的狀況,該怎么做呢?下面演示下這個配置步驟,這也是一個非常常用的場景
1、node2節點上傳 node_exporter安裝包
tar -zxvf node_exporter......
mv node_exporter-0.16.0.linux-amd64 node_exporter

2、啟動node_exporter 服務
nohup ./node_exporter &
3、檢查服務狀態
node_exporter 默認暴露9100埠,可以通過下面命令查看

4、Promethus 所在的node1節點做如下配置
修改 prometheus.yml 組態檔,找到下面的配置所在的位置,然后在后面添加新的配置

- job_name: 'remote_node'
static_configs:
- targets: ['Node2的IP地址:9100']
Promethus 配置監控服務格式比較固定,基本上都類似,重新加一個job_name,然后配置相關的服務、埠等,后續會陸續做說明
配置完畢后,需要殺掉之前的行程,然后重新執行之前的啟動命令
pkill prometheus
./prometheus --config.file=prometheus.yml &
然后,我們再次訪問之前的界面,這時候可以發現下面多了一個監控的物件,那個job=remote_node的不正是上面在prometheus.yml里面新增的一個嘛

本篇演示了如何基于centos7環境 快速安裝promethus(普羅米修斯)的監控環境,后續如果需要接入其他被監控的服務就可以在此基礎上繼續進行了,本篇到此結束,最后感謝觀看!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423359.html
標籤:其他
上一篇:017 大資料之HBase
下一篇:Maven build Compilation error : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugi
