Zabbix JMX监控之ActiveMQ

时间:2021-06-20 16:26:11
监控原理:
  ActiveMQ作为依赖java环境的中间件,同样可以像tomcat一样用JMX(java扩展程序)监控。并且与tomcat不同的是,ActiveMQ自带了JMX,只需在配置文件中开启即可,在配置好JMX之后,可以通过Jconsole(监控java环境的工具)监控ActiveMQ
 
环境:centos 6.8 、java 1.7.0_21
 
部署:
1、下载activemq
wget http://archive.apache.org/dist/activemq/5.11.1/apache-activemq-5.11.1-bin.tar.gz
进入/etc/hosts文件,将127.0.0.1改成本机外网IP,最终hostname -i的结果是本机外网IP
若非,jconsole连接的时候会报错Connection timed out
2、配置./apache-activemq-5.11.1/conf/activemq.xml
修改broken字段:
<broker useJmx="true" xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}"> 
修改broken字段内的managementContext节点:
<managementContext>
<managementContext createConnector="true" connectorPort="11099"/>
</managementContext>
3、配置./apache-activemq-5.11.1/bin/activemq
在脚本最后添加:
ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=11099 "
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false"
4、开启pache-activemq
顺利的话11099端口应该开启(若不开启或程序无法开启请找原因),用jconsole(windows下安装jdk后在java目录下)连接IP:11099(用户名:admin,密码:activemq,这个在jmx.password和jmx.access里 修改),若能够正常连接,则进行下一步
如果不能连接,killall -9 java pkill -9 activemq多次杀死进程后开启activemq后重新连接
5、添加模板
没法上传文件。。。
将该模板导入到zabbix中作为父模板,克隆一个新模板并修改宏
Zabbix JMX监控之ActiveMQ
并修改JMX接口
Zabbix JMX监控之ActiveMQ
此时JMX图标应该变绿,并且新模板的监控项会收集到数据
 
FAQ:
1、activemq启动不了有大概几个原因:内存不够,可通过./activemq startls确认;时间不同步,可service ntpdate start开启时间同步;jmx.access和jmx.password文件当前用户不是400权限,这个未经确认;
2、若jconsole连接jmx时连接正常(报错忘了是什么),可能是zabbix-java-gateway版本过低,升级到zabbix-java-gateway-3.4.1试试。