Prometheus是一個開源的系統監視和警報工具、一款非常優秀的監控工具、監控方案;
Prometheus 提供了數據搜集、存儲、處理、可視化和告警一套完整的解決方案。
Prometheus的關鍵特性如下:
由度量名和鍵值對標識的時間序列數據的多維數據模型
靈活的查詢語言
不依賴於分布式存儲;單服務器節點是自治的
通過HTTP上的拉模型實現時間序列收集
通過中間網關支持推送時間序列
通過服務發現或靜態配置發現目標
圖形和儀表板支持的多種模式
Prometheus的組件:
Prometheus生態由多個組件組成,並且這些組件大部分是可選的:
Prometheus服務器,用於獲取和存儲時間序列數據;
儀表應用數據的客戶端類庫(Client Library)
支持臨時性工作的推網關(Push Gateway)
特殊目的的輸出者(Exporter),提供被監控組件信息的 HTTP 接口,例如HAProxy、StatsD、MySQL、Nginx和Graphite等服務都有現成的輸出者接口
處理告警的告警管理器(Alert Manager)
其它支持工具
Prometheus的整體工作流程:
1)Prometheus 服務器定期從配置好的 jobs 或者 exporters 中獲取度量數據;或者接收來自推送網關發送過來的 度量數據。
2)Prometheus 服務器在本地存儲收集到的度量數據,並對這些數據進行聚合;
3)運行已定義好的 alert.rules,記錄新的時間序列或者向告警管理器推送警報。
4)告警管理器根據配置文件,對接收到的警報進行處理,並通過email等途徑發出告警。
5)Grafana等圖形工具獲取到監控數據,並以圖形化的方式進行展示。