In Chapter 3, Monitoring the Storm Cluster, we learned how to monitor a Storm cluster using the Storm UI or Nimbus thrift API. This section will explain how you can monitor the Storm cluster using JMX. JMX is a set of specifications used to manage and monitor applications running in the JVM. We can collect or display the Storm metrics such as heap size, non-heap size, number of threads, number of loaded classes, heap and non-heap memory, and virtual machine arguments, and manage objects on the JMX console. The following are the steps we need to perform to monitor the Storm cluster using JMX:
We will need to add the following line in the
storm.yaml
file of each supervisor node to enable JMX on each of them:supervisor.childopts: -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=12346
Here,
12346...