一、Jstatd的相关配置
1. 创建jstatd权限配置文件jstatd.all.polocy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
2、启动jstatd
jstatd -J-Djava.rmi.server.hostname= < ip > -J-Djava.security.policy=jstatd.all.policy
3、启动VisualVM
启动以后在Remote处添加新的远程主机IP
这个方法可以看到jvm的所有相关进程的使用资源的情况,但是无法查看CPU指标和线程情况,下面采用jmx的方式查看具体storm worker的各项指标
二、利用jmx方式监视storm worker
1、配置storm.yaml
worker.childopts: "-Xmx1024m -Djava.rmi.server.hostname=10.0.10.3
-Dcom.sun.management.jmxremote.port=1%ID%
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false"
监视的端口为worker端口前面加1,例如worker端口为6704,则监视端口为16704。
2、在jstatd已添加的远程主机上添加JMX连接,端口为上面所说的监视端口
3、修改jmxremote.password文件 (如果需要使用密码)
vim $JAVA_HOME/jre/lib/management/jmxremote.password
把这两个注释去掉的注释去掉
'''
# monitorRole QED
# controlRole R&D
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=/usr/java/default/jre/lib/management/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=/usr/java/default/jre/lib/management/jmxremote.access'
jmxremote.access 中显示
monitorRole readonly
controlRole readwrite
jmxremote.password中显示
monitorRole QED (QED为密码)
controlRole R&D