jmx 监控 java 应用
大坑:由于没有更换 StartJavaPollers 属性值,导致 jmx 连接一直有问题
前提:防火墙都关闭
先快速安装 jdk 和 tomcat,部署一个简单的 web 应用

tomcat 开启远程监控功能
vim ./bin/catalina.sh,加入以下行,\ 代表续行符
不能加到太后面,可以从注释没有的那行开始(108行)
export CATALINA_OPTS="$CATALINA_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=10.0.0.21(本机IP)"
2
3
4
5
6
随后重启 tomcat

在 zabbix 服务端安装 java-gateway(连接工具):yum list | grep -i java-gateway

根据需要修改 zabbix-java-gateway 配置文件

调整 zabbix_server.conf 的配置,指向 zabbix-java-gateway,由于 zabbix-java-gateway 是在服务器本机部署的,所以指向本地
StartJavaPollers
:指定用于与 Java 应用程序交互的 Java Pollers 的数量,如果为 0,在新建 zabbix 主机进行 jmx 模式进行监控时会报错:[Runtime: JVM is not reachable](javascript:void(0))
设置开机自启,启动 zabbix-java-gateway,注意 jdk 版本不得低于 1.8,随后重启 zabbix server

用 cmdline-jmxclient-0.10.3.jar 工具测试连接:java -jar cmdline-jmxclient-0.10.3.jar - 10.0.0.21:9010

接下来进行 zabbix server 配置



java应用监控方案2:通过 jmap/jstat 实现自定义监控(不需要安装 java-gateway,【tomcat】不需要开启远程监控功能)
用户输入参数 可以是应用名称,根据应用名称找出应用 pid,根据 pid 导出 jmap -heap pid jvm 内存使用情况
继续过滤,DIY 自己需要的信息和模板