一、总体架构图
下图展示了各个组件在此过程中的作用
二、jmx_prometheus
负责生成JVM的监控信息
1、下载agent的jar包:
jmx_prometheus_javaagent-0.16.1.jar,下载地址
2、配置:jmx_prometheus.yaml,
更多配置信息请参考 jmx_exporter
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
3、启动
# 端口号8314和yourJar.jar需要进行设置
java -javaagent:jmx_prometheus_javaagent-0.16.1.jar=8314:./jmx_prometheus.yaml -jar yourJar.jar
【注意】记录此处的8314端口号和IP地址后续Prometheus配置文件中使用
三、Prometheus
负责收集和存储JVM信息
1、配置yaml文件
查找scrape_configs节点,增加监控Job子节点,示例如下:
- job_name: demo-hello #监控Job名称
static_configs:
- targets: ['192.168.7.XXX:8314'] #待监控机器列表,node exporter默认端口9100,多台机器用“,”分隔。
【注意】记录此处的job_name后续Grafana中使用
2、重启Prometheus服务
docker-compose restart prometheus
3、验证
1、访问 Prometheus的IP9090端口,有界面代表启动成功。如:http://127.0.0.1:9090/
2、查看已有的JVM信息
或查看有demo-hello则OK
四、Grafana
负责展示JVM状态
1、下载模板
模板ID:8563