監控原理:
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中作為父模板,克隆一個新模板並修改宏

並修改JMX接口

此時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試試。