ActiveMQ5.10.2版本配置JMX
ActiveMQ的特性之一是很好的支持JMX。通过JMX MBeans可以很方便的监听和控制ActiveMQ的broker。
鉴于官方网站提供的JMX特性说明对于远程访问的配置流程不是很完整,笔者在实际配置时也走了一点弯路。所以本文将根据笔者的实际经验,分别讲解如何在windows和Linux环境下配置ActiveMQ的JMX远程访问。除此之外,还会从“是否是密码保护”的方面讲解。
本文的JMX客户端环境为Windows7下的JDK1.7。
没有密码保护的远程访问
没有密码保护的远程访问的配置很简单,只需稍微修改activemq.xml中的配置即可。配置如下:
Window平台下
在<broker>节点中加入useJmx属性,并修改<managementContext>节点中的createConnector属性:
<broker ... useJmx="true">
...
<managementContext>
<managementContext createConnector="true"/>
</managementContext>
</broker>
其中,默认访问端口为1099,也可以通过<managementContext>节点中的connectorPort属性修改。启动activemq后,日志中出现以下信息表示配置成功了。
INFO | JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
在windows7命令行中启动jconsole,选择“远程进程”,在URL中输入将localhost替换成实际IP后的上述信息,无需用户名和口令。即可链接成功。如图:

Linux平台下
Lunix平台的下配置与windows如出一辙,但需额外增加如下配置:
<broker ... useJmx="true">
...
<managementContext>
<managementContext createConnector="true" connectorHost="本机的IP"/>
</managementContext>
</broker>
或修改Linux服务器系统文件/etc/hosts中的localhost设置,将127.0.0.1更改为实际IP(不建议)。
否则客户端无法通过将localhost替换成实际IP后远程访问JMX。
有密码保护的远程访问
有密码保护的配置相对较复杂,需要修改JVM参数,主要步骤如下:
Window平台下
一、确认ActiveMQ默认的连接器已经关闭。注意createConnector=false
<broker ... useJmx="true">
...
<managementContext>
<managementContext createConnector="false"/>
</managementContext>
</broker>
二、确认conf目录下有jmx.access(用户权限)和jmx.password(用户密码)两个文件(安装时默认会有),并按照格式填写内容(参考官方文档)
三、修改jmx.password的读取权限,目的是除归属用户外,其它用户不能有权限读写,这个是难点,对于笔者使用的win7系统,按如下方式修改。
右键jmx.password文件>属性>安全>高级>权限,将“包括可从该对象的父项继承的权限”勾掉,弹出警告选择“添加”

然后删除所有用户,一路确定。此时这个文件已经不能访问和修改。若想重新修改内容,右键jmx.password文件>属性>安全>高级>权限>添加,将用户添加进来即可。
四、修改bin\activemq.bat文件。找到set SUNJMX=语句处,主要不是带REM(注释掉)的那一行将SUNJMX值设置为
set SUNJMX=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=%ACTIVEMQ_BASE%/conf/jmx.password -Dcom.sun.management.jmxremote.access.file=%ACTIVEMQ_BASE%/conf/jmx.access
好了,现在通过jconsole远程链接,填写URL,注意端口为1616,输入用户名密码,连接成功。
关于winxp及其它细节,参考http://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#PasswordAccessFiles,和How to a Secure Password File on Microsoft Windows Systems。
Linux平台下
Linux下的步骤与windows类似:
一、设置createConnector=false
二、确认jmx.access和jmx.password两个文件和内容
三、关于jmx.password文件的权限,Linux下就比较容易,执行以下命令即可
chmod 600 jmxremote.password
四、修改bin\activemq文件,将以下4行注释放开。注意,这里不是SUNJMX,不与windows一样。
# 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"
现在,Linux平台下也可以实现有密码保护的远程访问了。
总结
关于JMX远程访问的配置已全部讲解完毕,总结一下我们主要进行的配置:
不需要密码时,只修改activemq.xml中的配置即可;
需要密码时,关掉默认链接,在脚本中修改JVM参数,引向密码文件。难点在于密码文件的权限修改。
ActiveMQ5.10.2版本配置JMX的更多相关文章
- 阿里云centos7.4安装并部署svn1.10.0版本(配置多仓库,加入开机自启动)
如何安装最新版本 1.10.0: 如果已安装旧版本,先卸载 yum remove subversion* 查看当前可安装的版本 yum list | grep subversion 可以去官网下载安装 ...
- 汇总10.4版本ArcGIS Server与ArcMap 安装+SDE+注册数据源(非破解)
文档参考了Server技术支持部各位前辈的总结文档. win10 + Server 10.4 + ArcMap 10.4 + Oracle instant client (32位 和 64位) 安装 ...
- Datatables插件1.10.15版本服务器处理模式ajax获取分页数据实例解析
一.问题描述 前端需要使用表格来展示数据,找了一些插件,最后确定使用dataTables组件来做. 后端的分页接口已经写好了,不能修改.接口需要传入页码(pageNumber)和页面显示数据条数(pa ...
- solr-4.10.2版本使用tomcat7部署
当前版本仅限于solr-4.10.2版本.默认环境使用的是jdk1.7,tomcat7.环境自己配置.网上一堆堆的. 1.下载相应的文件(solr-4.10.2.zip). 官网地址:http://l ...
- opencv学习(1.2) - Windows 10 安装OpenCV &配置VS 2015
windows 10 安装OpenCV&配置VS 2015 环境 系统:Windows 10 OpenCV版本:3.4.1 开发IDE:VS2015 社区版 下载安装 下载OpenCV 3.4 ...
- Mac OS X 10.10 Yosemite下配置 apache+php
自从系统从OS X Mavericks 10.9升级到OS X Yosemite 10.10 后之前配置apache和php均不能正常使用了, 重新设置配置如下: 首先,查看当前系统的apache版本 ...
- 基于Web的Kafka管理器工具之Kafka-manager的编译部署详细安装 (支持kafka0.8、0.9和0.10以后版本)(图文详解)(默认端口或任意自定义端口)
不多说,直接上干货! 至于为什么,要写这篇博客以及安装Kafka-manager? 问题详情 无奈于,在kafka里没有一个较好自带的web ui.启动后无法观看,并且不友好.所以,需安装一个第三方的 ...
- 我的 Windows 10 的基本配置
Windows 10 的基本配置 功能性 开启 .Net Framework 3.5(包括 .NET 2.0 和 3.0) 旧版本 Windows 10 默认只安装了 .Net Framework 4 ...
- CentOS 8及以上版本配置IP的方法,你 get 了吗
接上篇文章讲了 Ubuntu 18及以上版本的配置方法,本文再来讲讲 CentOS 8 及以上版本配置 IP 的方法. Centos/Redhat(8.x) 配置 IP 方法 说明:CentOS 8 ...
随机推荐
- Unity网游开发生存指南—蒸汽之城
Posted by amy on 2013.03.07 文 / 王楠(梦加网络 游戏制作人) 前段时间关于Unity是否适合国内手游/网游创业团队的讨论非常火爆,本文从<蒸汽之城>的开发历 ...
- tcp/ip--百度百科
Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Inter ...
- 《Java程序猿面试笔试宝典》之Statickeyword有哪些作用
statickeyword主要有两种作用:第一,仅仅想为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关.第二,希望某个方法或属性与类而不是对象关联在一起,也就是说,在不创建对象的情况下 ...
- 02-创建hibernate工程
编写hibernate需要的步骤 1,创建hibernate的配置文件 2,创建持久化类 3,创建对象-关系映射文件 4,通过hibernate API编写访问数据库代码 准备需要的文件. 1,准备一 ...
- JSON——Java中的使用
1. 构建JSON方法(数据——>JSON) 这里使用Maven构建项目 在pom.xml中添加如下依赖 <dependency> <groupId>org.json&l ...
- Mylyn--谁用谁知道!
Mylyn――谁用谁知道!http://www.blogjava.net/alwayscy/archive/2008/06/15/208022.html 此文是我之Mylyn初体验,不搞大而全,而只把 ...
- Jenkins插件开发资料
原文地址:http://www.ciandcd.com/?p=181 Jenkins plugin 开发: Document http://hudson-ci.org/docs/index.html ...
- 《C#程序设计教程 -李春保》阅读笔记
<C#程序设计教程 -李春保>阅读笔记 ( 需注意程度:红>粗体>下划线,蓝色:我的疑问 ) 老师的引言 [师]对待一种新语言的关注点 数据类型定义(python不用定 ...
- 高仿快递100--实战之RadioGroup和RadioButton应用
1.RadioButton和CheckBox的差别: a.单个RadioButton在选中后,通过点击无法变为未选中 单个CheckBox在选中后.通过点击能够变为未选中 b.一组RadioButto ...
- Google I/O 2014 大会总结 Android开发新方向
昨天晚上,Google I/O 2014大会召开,会上主要展示了下面几个部分的创新内容: Android L 操作系统 首先是界面,谷歌又一次设计了一套 UI 规范.并称之为"Materia ...