一、概述
JMX Exporter
https://github.com/prometheus/jmx_exporter
它是Prometheus官方組件,作為一個JAVA Agent來提供本地JVM的metrics,並通過http暴露出來。這也是官方推薦的一種方式,可以獲取進程的信息,比如CPU和內存使用情況。
Jmx_exporter是以代理的形式收集目標應用的jmx指標,這樣做的好處在於無需對目標應用做任何的改動。
運行JMX exporter的方式:
java XXX -javaagent:/root/jmx_exporter/jmx_prometheus_javaagent-0.12.0.jar=3010:/root/jmx_exporter/config.yaml -jar XXX.jar
下載
目前最新版是0.12.0,下載鏈接為:
二、JMX Exporter配置
simple-config.yml
我的prometheus安裝路徑為:/data/prometheus
新建配置文件simple-config.yml
mkdir /data/prometheus/jmx_exporter cd /data/prometheus/jmx_exporter wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar vim simple-config.yml
內容如下:
--- lowercaseOutputLabelNames: true lowercaseOutputName: true whitelistObjectNames: ["java.lang:type=OperatingSystem"] rules: - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):' name: os_$1 type: GAUGE attrNameSnakeCase: true
比如我有一個rms的java應用,啟動方式為:
java -jar /data/rms/RMS.jar
使用JMX Exporter插件收集數據,需要改成這樣:
java -javaagent:/data/prometheus/jmx_exporter/jmx_prometheus_javaagent-0.12.0.jar=3010:/data/prometheus/jmx_exporter/simple-config.yml -jar /data/rms/RMS.jar
注意:3010是代理端口,可以隨意指定。
prometheus.yml
修改配置文件,增加一個job_name
vim /data/prometheus/prometheus.yml
最后一行增加
- job_name: 'java' scrape_interval: 30s static_configs: - targets: ['localhost:3010']
重啟prometheus
/etc/init.d/prometheus-server restart
三、Grafana配置
導入Dashboard
模板鏈接為:
https://grafana.com/grafana/dashboards/8563/revisions
點擊下面的Download,進行下載。
登錄Grafana,點擊import
上傳json
數據源選擇 Prometheus
最后打開剛剛導入的Dashboard,如下圖
本文參考鏈接: