使用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/

posted @ 2019-12-15 10:33  肖祥  阅读(8882)  评论(0编辑  收藏  举报