先安装Grafana:

​​Docker部署可视化监控工具Grafana​​

再安装Prometheus并配置到Grafana

​​grafana+prometheus​​

下载JMX Exporter的jar包用来监控JVM信息

要采集JVM信息,可以启动Java项目的时候通过JMX Exporter(下载地址:https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/ )来进行采集。以 jmx_prometheus_javaagent-0.12.0.jar 为例。

1.下载:

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

也可以本地下载好传到服务器里面。

新增配置文件 simple-config.yml

touch simple-config.yml
vim simple-config.yml
wercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
blacklistObjectNames: []
rules:
- pattern: 'java.lang<type=OperatingSystem><>(committed_virtual_memory|free_physical_memory|free_swap_space|total_physical_memory|total_swap_space)_size:'
name: os_$1_bytes
type: GAUGE
attrNameSnakeCase: true
- pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
name: os_$1
type: GAUGE
attrNameSnakeCase: true

使用JMX Exporter插件收集数据,启动jar包时需要改成这样:

java -javaagent:/home/jar/demo/jmx_prometheus_javaagent-0.12.0.jar=8037:/home/jar/demo/simple-config.yml -jar swagger-0.0.1-SNAPSHOT.jar

【注意】记录此处的8037端口号和IP地址后续Prometheus配置文件中使用

我这里的结构是这样的:

prometheus+grafana可视化实时jvm监控工具_maven

修改prometheus.yml

查找scrape_configs节点,增加监控Job子节点,示例如下:

- job_name: 'java'
scrape_interval: 30s
static_configs:
- targets: ['120.48.54.67:8037']

prometheus+grafana可视化实时jvm监控工具_java_02


【注意】记录此处的job_name后续Grafana中使用

重启Prometheus服务

docker restart pensive_williamson

验证一下

1、访问 Prometheus的IP9090端口,有界面代表启动成功。如:http://127.0.0.1:9090/

2、查看已有的JVM信息

prometheus+grafana可视化实时jvm监控工具_jvm_03


点击查看详情,需要把这些信息配置Grafana模板转成可视化信息。

prometheus+grafana可视化实时jvm监控工具_java_04

配置Grafana模板

模板ID:8563

prometheus+grafana可视化实时jvm监控工具_maven_05


prometheus+grafana可视化实时jvm监控工具_java_06


prometheus+grafana可视化实时jvm监控工具_java_07


prometheus+grafana可视化实时jvm监控工具_jar_08


prometheus+grafana可视化实时jvm监控工具_maven_09