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 ...
随机推荐
- 网络编程——C10K简述
C10K问题 网络服务在处理数以万计的客户端连接时,往往出现效率底下甚至完全瘫痪,这被成为C10K问题. (C10K = connection 10 kilo 问题).k 表示 kilo,即 10 ...
- IOS Exception2 this class is not key value coding-compliant for the key Click
2015-06-16 23:00:53.706 MyIOSPackage[823:280049] *** Terminating app due to uncaught exception 'NSUn ...
- css处理超出文本截断问题的两种情况(多行或者单行)
1.非多行的简单处理方式: css代码: .words{ width:400px; overflow:hidden; /*超过部分不显示*/ text-overflow:ellipsis; /*超过部 ...
- 基于React实现的【绿色版电子书阅读器】,支持离线下载
代码地址如下:http://www.demodashi.com/demo/12052.html MyReader 绿色版电子书阅读器 在线地址:http://myreader.linxins.com ...
- 使用sql语句实现添加、删除约束
--主键约束(Primary Key constraint):要求主键列的数据唯一,并且不允许为空. --唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值. ...
- Android 四大组件学习之BroadcastReceiver二
上节学习了怎样创建一个广播.也尝试接受系统打电话的广播. 本节课学习怎样自己定义广播.自己定义广播实质上也就是创建一个发送广播者,创建一个接受该广播者. 那我们就開始行动吧. 先创建一个发送广播的应用 ...
- python 在Windows中描述路径时出现的问题
问题的根本:windows读取文件可以用\,但在字符串里面\被作为转义字符使用, python在描述路径时有两种方式: 'd:\\a.txt',转义的方式 r'd:\a.txt',声明字符串不需要 ...
- Spring 使用
一.工具类中使用bean IService service = (IService)ContextLoader.getCurrentWebApplicationContext().getBean(se ...
- Atitit.aticmd v4 新特性q39 添加定时器释放功能
Atitit.aticmd v4 新特性q39 添加定时器释放功能 V1 实现兰cmd V2 标准输入,标准输出,标准错误与重新定向 V3 stdout stderr统一重新定向 V4 添加定 ...
- Atitit. C#.net clr 2.0 4.0新特性
Atitit. C#.net clr 2.0 4.0新特性 1. CLR内部结构1 2. CLR 版本发展史3 3. CLR 2.0 3 4. CLR 4 新特性 概览4 4.1.1. 托管与本地 ...