前言:现在很多java包都是springboot内置的java启动的,并没有tomcat,然后很多jmx的监控文档都是基于tomcat写的,所以我来写一篇关于内置的jmx监控文档
一、Zabbix服务端启动java-gateway服务
由于我的系统是ubuntu,我这里用ubuntu作为案例进行介绍
1.1 安装zabbix-java-gateway
apt install zabbix-java-gateway
1.2 修改配置文件
START_POLLERS=5
其他保持不变,上面的参数也可以不修改,都保持默认即可
1.3 启动java-gateway
service zabbix_java_gateway start
1.4 zabbix-server启动gateway进程
修改zabbix-server.conf配置文件
JavaGateway=127.0.0.1
StartJavaPollers=5 ## 这个配置要小于或者等于gateway启动参数,要不然获取不到监控值
- 重启zabbix-server
service zabbix-server restart
二、客户端配置
我们在客户端启动jar包的时候一般都是直接启动java -jar xxxx.jar
这种形式,但是如果需要监控其jmx参数的话,那就需要将启动命令写在配置文件里面更加方便点
java -jar \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.registry.ssl=false \
-Djava.rmi.server.hostname=xx.xx.xx.xx \
-Dcom.sun.management.jmxremote.rmi.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
xxxx.jar
参数 | 用途 | 值 |
---|---|---|
-Dcom.sun.management.jmxremote | 开启jmx远程访问 | true / false |
-Dcom.sun.management.jmxremote.port | JMX端口 | 12345 |
-Dcom.sun.management.jmxremote.ssl | 是否启用SSL | true / false |
Dcom.sun.management.jmxremote.registry.ssl | 是否启用SSL记录 | true / false |
-Djava.rmi.server.hostname | 本地绑定地址 | 127.0.0.1 |
-Dcom.sun.management.jmxremote.rmi.port | RMI端口 | 12345 |
-Dcom.sun.management.jmxremote.authenticate | 是否启用密码认证 | true / false |
- 查看端口是否启动
netstat -tunlp | grep 12345
tcp6 0 0 :::12345 :::* LISTEN 12049/java
三、添加监控
- 添加JMX interfaces
- 添加模板
关联Template App Generic Java JMX模板
四、获取数据
4.1 通过windows jconsole获取
image.pngimage.png
image.png
4.2 通过命令行获取JMX数据
通过命令行获取JMX数据,命令如下:
shell# wget http://crawler.archive.org/cmdline-jmxline-jmxclient/cmdline-jmxclient-0.10.3.jar
shell# java -jar cmdline-jmxclient-0.10.3.jar - 10.10.10.10:12345 java.lang:type=Memory HeapMemoryUsage
网友评论