Grafana + Prometheus快速搭建監(jiān)控平臺
隨著業(yè)務(wù)的越發(fā)復(fù)雜,軟件系統(tǒng)也越來越龐大,對軟件系統(tǒng)的要求越來越高,意味著我們需要隨時掌控系統(tǒng)的運行情況。因此,系統(tǒng)的實時監(jiān)控以及可視化展示,就顯得非常重要。
今天來介紹下使用Grafana + Prometheus快速搭建監(jiān)控平臺。
總體可視化方案

Grafana:通過將采集的數(shù)據(jù)查詢?nèi)缓罂梢暬恼故?/p>
Prometheus:存儲的是時序數(shù)據(jù),即按相同時序(相同名稱和標簽),以時間維度存儲連續(xù)的數(shù)據(jù)的集合
Exporter:它是prometheus監(jiān)控中重要的組成部分,負責數(shù)據(jù)指標的采集
Grafana介紹

Grafana是一個開源的度量分析與可視化套件。經(jīng)常被用作基礎(chǔ)設(shè)施的時間序列數(shù)據(jù)和應(yīng)用程序分析的可視化。
Grafana支持許多不同的數(shù)據(jù)源。每個數(shù)據(jù)源都有一個特定的查詢編輯器,該編輯器定制的特性和功能是公開的特定數(shù)據(jù)來源。

Prometheus介紹

Prometheus是一套開源的系統(tǒng)監(jiān)控和報警框架,可以理解Prometheus是數(shù)據(jù)庫,它需要配合Exporter使用。Exporter是負責數(shù)據(jù)匯報的程序,不同的Exporter負責不同的業(yè)務(wù)。其統(tǒng)一命名格式:xx_exporter。
Prometheus官方提供的exporter有blackbox_exporter、consul_exporter、graphite_exporter、haproxy_exporter、memcached_exporter、mysqld_exporter、node_exporter、statsd_exporter,還有很多第三方的exporter,例如:Redis exporter、RabbitMQ exporter等
Prometheus只會采集指定格式的監(jiān)控信息,它周期性地調(diào)用exporter提供的metrics數(shù)據(jù)接口來獲取數(shù)據(jù),而exporter就是按照Prometheus規(guī)定的格式采集各種軟件的監(jiān)控信息
案例:利用JMX監(jiān)控Java程序效果

搭建過程
本文采用的是Windows系統(tǒng)安裝grafana和Prometheus,直接下載雙擊即可。
Grafana默認地址:http://127.0.0.1:3000,默認賬號和密碼都是admin

Prometheus默認地址:http://127.0.0.1:9090

jmx_exporter
監(jiān)控Java程序可以使用jmx_exporter,github地址:https://github.com/prometheus/jmx_exporter
java -javaagent:./jmx_prometheus_javaagent-0.14.0.jar=8081:config.yaml -jar yourJar.jar
config.yaml內(nèi)容可以參考jmx_exporter項目中example_configs目錄
Prometheus配置
修改prometheus.yml,配置需要拉取的exporter的地址

如果看到targets中有你添加的exporter表示已經(jīng)可以收集到數(shù)據(jù)了

Grafana設(shè)置
添加數(shù)據(jù)源

選中prometheus
配置地址

使用Grafana插件生成dashboard
grafana提供了很多dashboard模版,例如從 https://grafana.com/dashboards/8563 這里下載一個模板,導(dǎo)入 grafana 中即可實現(xiàn)jvm監(jiān)控。

也可以通過手動創(chuàng)建dashboard
創(chuàng)建監(jiān)控面板

創(chuàng)建監(jiān)控指標圖表

添加指標
保存即可。
告警功能
是不是感覺實現(xiàn)監(jiān)控的可視化非常方便,同時prometheus還提供告警插件alertmanager,可以通過alertmanager實現(xiàn)異常監(jiān)控的報警功能。