这里只是对prometheus监控JVM的配置过程做个记录,方便以后查阅。
jmx exporter是prometheus和JMX的桥梁。
在我们的工程里面,它是以Java Agent的方式运行,它的功能是收集本地的JVM信息,并通过HTTP服务暴露出来。
github地址:https://github.com/prometheus/jmx_exporter
1.下载jmx_exporter
新建一个目录,用于存放jmx_exporter和config配置
1 | [admin@haifly-bj-tomcat2 ~]$ mkdir jmx_exporter |
2.监控tomcat
2.1 添加名为tomcat.yml的配置文件
将以下github链接里的内容复制到tomcat.yml文件
github地址:https://github.com/chanjarster/prometheus-learn/blob/master/jvm-monitoring/jmx-exporter-config.yml
1 | [admin@haifly-bj-tomcat2 jmx_exporter]$ cat tomcat.yml |
2.2 修改tomcat启动文件
修改tomcat启动文件增加以下配置
1 | [admin@haifly-bj-tomcat1 ~]$ vim apache-tomcat-7.0.70/bin/catalina.sh |
-Xms64m -Xmx2048m 用于限制tomcat使用可使用的内存资源
58080端口就是用于获取metrics监控指标的,可根据实际环境修改
修改完后重启tomcat服务
2.3 配置prometheus 拉取监控指标
1 | - job_name: 'tomcat' |
重启prometheus
如果开启了api管理功能,可以如下方式热加载配置
1 | curl -X POST http://127.0.0.1:9090/-/reload |
3.监控微服务组件
这里以dubbo服务为例
3.1 添加名为dubbo.yml的配置文件
跟2.1的tomcat文件内容一样
1 | [admin@haifly-bj-dubbo1 jmx_exporter]$ vim dubbo.yml |
3.2 修改dubbo服务启动参数
我这里是使用supervisor来管理服务进程
1 | [program:accservice] |
50881端口对外暴露该服务的监控指标,可根据实际环境修改
修改完后重启dubbo组件
3.3 配置prometheus 拉取监控指标
1 | - job_name: 'dubbo' |
重启prometheus
1 | curl -X POST http://127.0.0.1:9090/-/reload |
4.grafana出图
推荐使用8563
效果如下
上图面板经过一定的修改可能略有不同,仅供参考