使用Prometheus+Grafana监控JVM

发布时间:2020-03-18 10:51:38编辑:admin阅读(3562)

    一、概述

    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,进行下载。

    1.png

     

     

    登录Grafana,点击import

    1.png

     

     

    上传json

    1.png

     

     

    数据源选择 Prometheus

    1.png

     

     

    最后打开刚刚导入的Dashboard,如下图

    1.png

     

     

    本文参考链接:

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


关键字