Linux Is Not Matrix——zabbix监控JBoss

  zabbix可以监控的范围很多,就目前的需求来看我们还需要zabbix监控我们的JBoss服务器,当然也就是监控JVM。

  不论是用什么监控JBoss或者tomcat这种web服务器,都是通过JMX来获取JVM的数据的,所以第一步就是开启JBoss的JMX。

  打开JDK的目录并且进入/jre/lib/management目录下面,修改jmxremote.access、jmxremote.password.template的权限为读写

cp jmxremote.password.template jmxremote.password
chmod 600 jmxremote.password
chmod 600 jmxremote.access
  然后解除jmxremote.password的两行注释。

monitorRole QED
controlRole R&D

  在Jboss的启动配置文件中加入开启JMX的配置。我这里使用的JBoss6.2,修改的是JBoss目录下的bin目录的./standalone.conf这个文件。

  加入如下配置



if [ "x$JAVA_OPTS" = "x" ]; then
   JAVA_OPTS="-Xms3000m -Xmx3000m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/jboss6.2/dump/m.hprof -Djava.net.preferIPv4Stack=true"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
else
   echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi


# ===========add these OPTS for JMX=================== 
JBOSS_HOME_DIR="/usr/local/jboss6.2"
JAVA_OPTS="${JAVA_OPTS} -Djava.rmi.server.hostname=192.168.22.248 -Dcom.sun.management.jmxremote.port=5789"
JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
#Use the jboss logmanager 
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.1.Final-redhat-1.jar"
JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.logging.Logger.pluginClass=org.jboss.logging.logmanager.LoggerPluginImpl"
# =========================== End ==============================

  这样就能开启JBoss的JMX了,然后上面的端口要记住,在zabbix中要用到,我这里设置的5789。
  在zabbix中添加JBoss主机信息,然后和之前不同的是这里要添加JMX的端口。

Linux Is Not Matrix——zabbix监控JBoss_第1张图片

  然后template中也添加JMX的模板。


  如果我们使用的是tomcat的话,模板中有专门给tomcat用的监控,我们选择那个就可以了。

  最后如果配置成功的话,zabbix的主机页面可以看到这个场景。


  JMX是绿色的。收工。


你可能感兴趣的:(Linux)