grafana+promethus+jmx_export监控jvm
使用一个小demo模拟jvm进程,并开启jmx端口8077
public class Hello{
/ -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.129.112 -Dcom.sun.management.jmxremote.port=8077 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false */ public static void main(String[] args) throws InterruptedException {
Thread.sleep(3 * 3600 * 1000); } }
讯享网
- 下载https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar
下载并启动jmx_export组件
本文使用0.3.1版本,因为grafana里现成的面板模板很多都是基于老版本的,新版本修改了标签名称会无法在grafana里显示出来。
两种启动方式,两种jar
官网有使用说明https://github.com/prometheus/jmx_exporter
一、和程序一起启动(官网推荐)
在程序启动命令中增加-javaagent参数指定jar、端口为12345和config.yaml
讯享网
-javaagent:/root/jmx_prometheus_javaagent-0.3.1.jar=12345:/root/config.yaml最小config.yaml如下
rules: - pattern: ".*"完整命令如下:
讯享网
java -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.129.112 -Dcom.sun.management.jmxremote.port=8078 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticatealse -javaagent:/root/jmx_prometheus_javaagent-0.3.1.jar=12345:/root/config.yaml Hello二、程序外部单独httpserver方式启动
单独启动jmx_export为http然后将jvm程序的jmx端口配置在config.yaml中
java -jar jmx_prometheus_httpserver-0.3.1.jar 12345 config.yaml最小config.yaml
讯享网
localhost:8077 rules: - pattern: ".*"验证jmx_export是否成功配置
访问http://192.168.129.112:12345 ,查看是否有metrics数据
- vi prometheus.yml增加job配置
配置promethus
- job_name: 'jmxtest' scrape_interval: 5s static_configs: - targets: ['192.168.129.112:12345']
重启promethus后,测试是否能查询到jmx数据

3. # 在grafana导入监控面板


job要填写promethus里配置的job_name
最终效果

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/11411.html