ActiveMQ自带的管理界面的功能十分简单,只能查看ActiveMQ当前的Queue和Topics等简单信息,不能监控ActiveMQ自身运行的JMX信息等。HawtIO 是一个新的可插入式 HTML5 面板,设计用来监控 ActiveMQ, Camel, Karaf, Fuse Fabric, Tomcat 和其他系统。ActiveMQ在5.9.0版本曾将hawtio嵌入自身的管理界面,但是由于对hawtio的引入产生了争议,在5.9.1版本中又将其移除,但是开发者可以通过配置,使用hawtio对ActiveMQ进行监控。本文介绍了通过两种配置方式,使用hawtio对ActiveMQ进行监控。
从http://hawt.io/getstarted/index.html下载最新版本的hawtio的最新运行jar包hawtio-app-1.4.66.jar 下载好后,切换到jar包所在目录 执行
java -jar hawtio-app-1.4.66.jar
启动hawtio程序,默认程序占用端口号为8080,如果8080端口已经被占用,请使用port启动参数,指定启动端口号,例如,我们使用8090作为启动端口号,启动hawtio程序
java -jar hawtio-app-1.4.66.jar –port 8090
当浏览器出现hawtio的欢迎页面(http://[hawtio所在主机ip]:[hawtio启动端口号)/hawtio/welcome)后,表示hawtio程序启动成功,我们可以使用它连接远程ActiveMQ服务器
在欢迎界面中点击上侧菜单条中的[Connect]菜单,打开Connect界面,在这个页面我们可以配置和连接我们想要连接的ActiveMQ服务器。
我们点击右侧的蓝色[+]按钮,新增一个ActiveMQ连接,我们在文本框中填入我们连接需要的参数:
ActiveMQ主机ip(或主机名)
ActiveMQ端口号(即ActiveMQ的jetty.xml文件中配置的管理页面端口号)
jolokia路径名(对ActiveMQ,使用api/jolokia)
配置完成后,可以点击[Save]按钮进行保存,下次启动hawtio时即可以从下拉列表中选择保存的连接进行连接。
点击[Connect to remote server],连接远端的ActiveMQ服务器,连接服务器时会要求你输入连接用户名和密码(即ActiveMQ的管理页面登录用户名/密码),输入完成,验证通过后,即连接ActiveMQ服务器成功。
点击顶部的[ActiveMQ]菜单,可以查看连接的ActiveMQ自身所带的Queue,Topic,以及Queue和Topic所包含的信息,包括连接Queue和Topic的Consumer和Producer信息。
点击顶部的[DashBoard]菜单,可以查看连接的ActiveMQ的系统信息,包括CPU,内存使用信息等。
点击顶部的[JMX]菜单,可以查看ActiveMQ的JMX信息
点击顶部的[Logs]菜单,可以查看ActiveMQ的运行日志信息(即data目录下的activemq.log信息),还可以简单对日志信息进行筛选
点击顶部的[Threads]菜单,可以查看ActiveMQ服务器内部的线程信息情况
当使用hawtio单程序时,可以对多个远程ActiveMQ服务器进行监控。
2. 集成hawtio到ActiveMQ中进行监控。
从http://hawt.io/getstarted/index.html页面下载hawtio-offline-default.war
下载好后拷贝到ActiveMQ安装目录的webapps目录下,改名为hawtio.war,解压到hawtio目录(也可以不用解压,后面的配置修改会略有不同)
编辑ActiveMQ安装目录下conf/jetty.xml文件,在第75行添加以下代码
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/hawtio" />
<property name="war" value="${activemq.home}/webapps/hawtio" />
<property name="logUrlOnStart" value="true" />
bean>
如果前面没有解压hawtio.war文件,那war属性的值应该改为webapps/hawtio.war
接下来根据ActiveMQ所在操作系统的不同,修改不同文件。 如果是Linux或者Mac系统,修改ActiveMQ安装目录下bin/env脚本文件,修改如下:
if [ -z "$ACTIVEMQ_OPTS" ] ; then
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Dhawtio.realm=activemq -Dhawtio.role=admins -Dhawtio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"
fi
如果是windows系统,修改bin/activemq.bat文件
if "%ACTIVEMQ_OPTS%" == "" set ACTIVEMQ_OPTS=-Xms1G -Xmx1G -Dhawtio.realm=activemq -Dhawtio.role=admins -Dhawtio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config="%ACTIVEMQ_CONF%\login.config"
需要注意的是-Dhawtio的三个设定必须放在ACTIVEMQ_OPTS设置的最前面(在内存参数设置之后),否则会出现验证无法通过的错误(另外,ACTIVEMQ_OPTS的设置语句不要回车换行)
修改完成后启动ActiveMQ(在Windows环境下启动请使用命令行activemq start启动,不要双击win64目录下的activemq.bat文件,否则在activemq.bat文件中的添加的hawtio参数设置将不会生效),我们可以看到hawtio webapp被加载
访问http://localhost:8161/hawtio(根据ActiveMQ的机器IP和jetty.xml中设置的admin页面端口号会有差异),进入hawtio console页面。
输入admin账号和密码(和ActiveMQ管理页面一致),进入hawtio页面。
点击[ActiveMQ]菜单,进入ActiveMQ监控页面,和单独运行hawtio连接ActiveMQ服务器的界面相同。
hawtio集成到ActiveMQ中监控方式在CentOS 7和Windows 7 64bit系统上均验证通过,
使用ActiveMQ版本为ActiveMQ 5.14.1