Prometheus監控運維實戰一: Prometheus介紹

一. 概述

Promehteus是一款近年來很是火熱的容器監控系統,它使用go語言開發,設計思路來源於Google的Borgmom(一個監控容器平臺的系統)。node

由前谷歌SRE  Matt T.Proudd在加入SoundCloud以後,與另外一位工程師Julius Volz合夥推出,並將其開源發佈。2016年,由Google發起的原生雲基金會(Cloud Native Computing Foundation)將其歸入其下,成爲該基金會繼Kubernetes後,第二大開源項目。mysql

Promehteus自然具備對容器的適配性,可很是方便的知足容器的監控需求,也可用來監控傳統資源。近年來隨着kubernetes容器平臺的火爆,Prometheus的熱度也不斷上升,大有超越老牌監控系統Zabbix成爲No.1的趨勢,目前已在衆多公司獲得普遍的使用。web

二.Prometheus的特色 

  •  多維度數據模型sql

  •  靈活的查詢語言數據庫

  •  不依賴分佈式存儲,單個服務器節點是自主的服務器

  •  經過基於HTTP的pull方式採集時序數據微信

  •  能夠經過中間網關進行數據推送架構

  •  經過服務發現或者靜態配置來發現目標服務對象分佈式

  •  支持多種多樣的圖表和界面展現,好比Grafana 等ide

三. Prometheus相關組件

  •  Prmoetheus  Server: 服務端,用於處理和存儲監控數據

  •  Exporter: 監控客戶端,用於收集各種監控數據,不一樣的監控需求由不一樣的exporter處理,如node-exporter、mysql-exporter、blackbox-exporter等。

  •  Pushgateway:在不支持pull 拉取監控數據的場景中,可經過部署Pushgateway的方式,由監控源主動上報到Promtehus。

  •  Alertmanager: 獨立組件,用於處理告警信息。

  •  Web-UI:Pometheus自帶的web界面,可進行監控數據的展現與查詢。

  •  其餘支持工具:Promethues項目自己提供的組件及豐富的開源工具和套件。 

官方架構圖:

image.png

四. 工做原理

1. 服務發現

  Prometheus可經過多種方式來發現要監控的資源列表,包括:

  用戶提供的靜態資源列表

  基於文件的發現  

  自動發現。例如,使用DNS SRV記錄來生成列表或經過查詢Consul等配置中心獲取信息.

2. 指標收集

 Prometheus根據配置的Job定時去拉取各個監控節點的數據,任何組件只要提供對應的HTTP接口就能夠接入監控,不須要任何SDK或其餘集成過程,很是適合虛擬化環境的監控,如Kubernetes、Docker等。

 默認的拉取方式爲pull,也可使用pushgateway提供的push 方式獲取各個監控節點的數據,並將獲取到的數據存入TSDB(一種時序型數據庫)。

3. 數據查詢

Prometheus提供一套內置的PromQL語言,其自帶的Web-UI查詢數據支持按條件表達式的方式,查詢相關的監控數據。

4. 可視化

Prometheus自帶的Web-UI可支持圖表展現 ,但功能及界面較簡陋,常規方案是接入到grafana進行展現管理。

5. 聚合告警

Promehteus Server沒有內置告警工具,程序基於配置的rules發送告警信息到Alertmanager,由Alertmanager對告警信息進行統一處理。Alertmanger支持對告警信息進行聚合和收斂,並經過郵箱、短信、微信、釘釘等多種告警方式發送給相關的接收人。

相關文章
相關標籤/搜索