storm.yaml添加JMX的配置如下:
nimbus.childopts: "-Xmx1024m -Djava.rmi.server.hostname=192.168.1.1 -Dcom.sun.management.jmxremote.port=9801 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" supervisor.childopts: "-Xmx2048m -Djava.rmi.server.hostname=192.168.1.1 -Dcom.sun.management.jmxremote.port=9802 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
配置添加好了重启nimbus和supervisor结点。
防火墙配置:
# Generated by iptables-save v1.4.7 on Tue Mar 10 12:44:31 2015 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [22:3552] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i eth2 -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 80,20887,14174,8181,6627,6700,6701,6702,6703,3772,3773,9801,9802 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT -A INPUT -m state --state NEW -p tcp -m tcp -m multiport --dports 8074,9874 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 20887 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 9720:9720 -j ACCEPT #JMX每次启动时的随机端口,添加上此配置jconsole才能正常连接 -A INPUT -m state --state NEW -m tcp -p tcp --dport 30001:65006 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited #-A INPUT -p tcp -m tcp --dport 8181 -j ACCEPT #-A INPUT -p tcp -m tcp --dport 6627 -j ACCEPT #-A INPUT -p tcp -m tcp --dport 6700 -j ACCEPT #-A INPUT -p tcp -m tcp --dport 6701 -j ACCEPT #-A INPUT -p tcp -m tcp --dport 6702 -j ACCEPT #-A INPUT -p tcp -m tcp --dport 6703 -j ACCEPT #-A INPUT -p tcp -m tcp --dport 3772 -j ACCEPT #-A INPUT -p tcp -m tcp --dport 3773 -j ACCEPT #-A FORWARD -j REJECT --reject-with icmp-host-prohibited #-A OUTPUT -p tcp -m tcp --sport 8181 -j ACCEPT #-A OUTPUT -p tcp -m tcp --sport 6627 -j ACCEPT #-A OUTPUT -p tcp -m tcp --sport 6700 -j ACCEPT #-A OUTPUT -p tcp -m tcp --sport 6701 -j ACCEPT #-A OUTPUT -p tcp -m tcp --sport 6702 -j ACCEPT #-A OUTPUT -p tcp -m tcp --sport 6703 -j ACCEPT #-A OUTPUT -p tcp -m tcp --sport 3772 -j ACCEPT #-A OUTPUT -p tcp -m tcp --sport 3773 -j ACCEPT COMMIT # Completed on Tue Mar 10 12:44:31 2015
然后通过JDK提供的jconsole进行监控:
service:jmx:rmi:///jndi/rmi://192.168.1.1:9801/jmxrmi
在jconsole下面还可以直接使用IP加端口的方式,比如:
192.168.1.1:9801
或者通过接口把JVM各参数拿到,然后通过类似监控宝的监控服务进行监控并报警。