使用Prometheus+Grafana監控JVM


一、概述

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,下載鏈接為:

https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar

 

二、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,如下圖

 

 

本文參考鏈接:

https://chanjarster.github.io/post/prom-grafana-jvm/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM