Java调优 – jmx与jstatd远程监控配置方式

352 阅读1分钟

jstatd远程监控服务器配置

  • 设置权限
vi $JAVA_HOME/jre/lib/security/java.policy    在文件末位的 }; 前添加 
    permission java.security.AllPermission; 

或者使用命令来设置权限

grant codebase "file:${java.home}/../lib/tools.jar" {   
    permission java.security.AllPermission;
};
  • 启动jstatd服务
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=172.29.2.152 -p1099 &

JMX配置

  • JMX为某个java实例的监控,可以查看线程,对Cpu及内存进行抽样,可以强制回收垃圾

  • java的启动语句里添加,下面例子是没有打开权限信息

-Djava.rmi.server.hostname=192.168.200.136 
-Dcom.sun.management.jmxremote.port=1099 
-Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.managementote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false
  • jmx的权限文件, jmx的权限文件通常在 %JAVA_HOME/jre/lib/management/

jmxremote.password 及 jmxremote.access 两个文件,一个用于记录账号密码,一个用于设置权限 jmxremote.password 文件默认没有,复制jmxremote.password.template文件即可,最下面这两行反注释掉即可启用

# monitorRole  QED
# controlRole   R&D 

账号为monitorRole,密码为QED,注意:jmxremote.password权限需为600,权限级别观察jmxremote.access文件底部,启动语句需要修改认证配置为true

-Dcom.sun.management.jmxremote.authenticate=true

参考文档