上次在騰訊的AI沙龍上聽到關於用Prometheus做監控的案例,我在網上搜了一下,記錄一下:
轉自:https://baijiahao.baidu.com/s?id=1621512315202282098&wfr=spider&for=pc
介紹
Prometheus(普羅米修斯)是一套開源的監控&報警&時間序列數據庫的組合.由SoundCloud公司開發。
Prometheus基本原理是通過HTTP協議周期性抓取被監控組件的狀態,這樣做的好處是任意組件只要提供HTTP接口就可以接入監控系統,不需要任何SDK或者其他的集成過程。這樣做非常適合虛擬化環境比如VM或者Docker 。
Prometheus應該是為數不多的適合Docker、Mesos、Kubernetes環境的監控系統之一。近幾年隨着k8s的流行,prometheus成為了一個越來越流行的監控工具。
而且Prometheus是開源的,真是我等伸手黨的福音。
架構

Prometheus可以做什么
在業務層用作埋點系統 Prometheus支持各個主流開發語言(Go,java,python,ruby官方提供客戶端,其他語言有第三方開源客戶端)。我們可以通過客戶端方面的對核心業務進行埋點。如下單流程、添加購物車流程。在應用層用作應用監控系統 一些主流應用可以通過官方或第三方的導出器,來對這些應用做核心指標的收集。如redis,mysql。在系統層用作系統監控 除了常用軟件, prometheus也有相關系統層和網絡層exporter,用以監控服務器或網絡。集成其他的監控 prometheus還可以通過各種exporte,集成其他的監控系統,收集監控數據,如AWS CloudWatch,JMX,Pingdom等等。不要用Prometheus做什么
prometheus也提供了Grok exporter等工具可以用來讀取日志,但是prometheus是監控系統,不是日志系統。應用的日志還是應該走ELK等工具棧。
grafana
一般配合grafana做前端展示

