一 prometheus的基本概念
- 名額 metric
- TS 時間序列資料,存儲的資料庫叫TSDB,叫時序資料庫。
- zabbix(後端資料庫關系型) 存在性能瓶頸。
- 趨勢資料: 聚合分析的結果。
- 告警更新,階梯型通知
- 資料節點: target
- 資料抓取:scrape
告警系統組成部分
- 監控采集: 被監控端要有監控代理,應用程式自帶儀表盤。黑盒監控(探針),網絡裝置:(snmp)
- 資料存儲:SQL、Nosql(kv\document、tsdb、)
- 展示: Grafana
- 報警: 通知作用 。
-
- 媒介
-
-
- 郵件、短信、釘釘、微信、Slack
- 推薦:《監控的藝術》書籍
-
常見的監控軟體:
- Cacti 、Nagios
- Zabbix
- Openfalcon/夜莺
- CAT(美團點評)
- Prometheus
功能實作:
- 創始人在google, 去了soundcloud
- 2012年研發,2015年釋出,現在是2.0階段
- 現在已經捐給了CNCF
- Metric ,多元度的标簽組合都代表一個獨立的時間序列。
- 内建了時序資料的聚合、切割、切片
- 支援雙精度浮點型資料
缺點:
- 日志的存儲不支援。
二 prometheus的工作原理
- prometheus是一款時序資料庫,一塊設計目标監控的關鍵元件。資料預設是一個月,如果時間更長需要對接其他時序資料庫。
- 整合生态系統内的其他元件,例如pushgateway\Altermanager和Grafana等,可構成一個完整的IT監控系統。
- 監控采集模式
-
- Pull : 監控系統去監控端拿資料, prometheus僅支援該模式。
- Push: 監控端推送資料到監控系統
- 監控的元件:
-
- PushGateway: 受限于網絡等因素,可能導緻prometheus無法拉取到用戶端的資料,此時需要pushgateway,用戶端将資料上傳到pushgateway上,prometheus去pushgateway上拉資料。
- 内部的查詢引擎: PromQL語句 ,内置了web的接口。可以基于web界面調用promQL接口。
- Prometheus ,内置的存儲資料預設一個月,如果需要存儲時間較長需對接其他時序資料庫。
- AlerManager: 告警元件, 本身不支援告警,需要結合promQL的結果結合表達式進行告警。
- 展示界面可以借助Grafana。
- node_exporter ,查詢名額之後暴露給prometheus。一對一的名額抓取代理器。
- 自動發現: 可以自動服務的發現并納入到系統
架構圖:
