`
longgangbai
  • 浏览: 7328632 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ActiveMQ的JMX监控使用

阅读更多
package easyway.app.activemq.demo3;

import javax.management.ObjectName;

import org.apache.activemq.broker.jmx.BrokerViewMBean;
import org.apache.activemq.web.RemoteJMXBrokerFacade;
import org.apache.activemq.web.config.SystemPropertiesConfiguration;
/**
 * 
 * RemoteJMXBrokerFacade 访问ActiveMQ JMX配置
 * @author   longgangbai   
 *
 */
public class ActiveMQJMX {
	/**
	 *       通过JMX获取ActiveMQ各种信息
	 * @param args
	 */
	public static void main(String[] args) { 
		RemoteJMXBrokerFacade createConnector = new RemoteJMXBrokerFacade(); 
		System.setProperty("webconsole.jmx.url", "service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi"); 
		//System.setProperty("webconsole.jmx.user","controlRole"); 
		//System.setProperty("webconsole.jmx.password","abcd1234"); 
		SystemPropertiesConfiguration configuration = new SystemPropertiesConfiguration(); 
		createConnector.setConfiguration(configuration); 
		try { 
			BrokerViewMBean brokerAdmin = createConnector.getBrokerAdmin(); 
			String brokerName =brokerAdmin.getBrokerName();
			System.out.println("BrokerName ="+brokerName );
			long messages =brokerAdmin.getTotalMessageCount();
			System.out.println("messages ="+messages );
			long consumerCount=brokerAdmin.getTotalConsumerCount();
			System.out.println("consumerCount ="+consumerCount );
			long dequeueCount=brokerAdmin.getTotalDequeueCount();
			System.out.println("dequeueCount ="+dequeueCount );
			long enqueueCount=brokerAdmin.getTotalEnqueueCount();
			System.out.println("enqueueCount ="+enqueueCount );
			
			System.out.println(brokerAdmin.getBrokerName()); 
			//获取Topic相关的ObjectName
			ObjectName[] topicList=brokerAdmin.getTopics();
			System.out.println("topic ="+topicList.length);
			//获取Queue相关的ObjectName
			ObjectName[] queueList=brokerAdmin.getQueues();
			System.out.println("queue ="+queueList.length);
            //根据ObjectName创建相关的JMX对象获取相关的信息。
		} catch (Exception e) { 
			e.printStackTrace(); 
		} 
	}

}

 

ActiveMQ配置安全性

 

监视ActiveMQ的方式有多种,在第一部分中已经说到了Web监视控制台,设置登录用户名和密码,这里再说一下JMX监控。运行了ActiveMQ之后,再运行jdk自带的jconsole即可以看到ActiveMQ的进程,如图:点击连接之后就可以看到ActiveMQ的运行情况。默认情况下是不需要用户名和口令的,修改activemq.bat,找到

修改成

Linux下的找到:

去掉注释即可。
重启ActiveMQ之后,在用jconsole连接就需要输入用户名和密码,jmx.access文件配置用户的访问权限readonly和readwrite,admin readwrite表示用户admin具有读写权限。Jmx.password文件配置用户的密码,admin activemq 表示admin用户的密码是activemq。

除了监视台可以设置用户名和密码之后,ActiveMQ也可以对各个主题和队列设置用户名和密码,配置如下:

simpleAuthenticationPlugin中设置用户名、密码和群组,authorizationPlugin设置主题和队列的访问群组,“>”表示所有的主题或者队列。上面的配置中添加了一个testUser,属于群组testGroup,同时设置test这个队列的访问读写权限为testGroup,当然admins也可以访问的,因为admins是对所有的队列都有访问权限。将第三部分代码中的设置用户名和密码改成刚刚添加的用户testUser,如果密码不正确,将会抛出User name or password is invalid.异常,如果testUser所属的群组不能访问test队列,那么会抛出User guest is not authorized to write to: queue://test异常。需要注意的是所有的群组都需要对以ActiveMQ.Advisory为前缀的主题具有访问权限。

分享到:
评论

相关推荐

    jmx监控activeMQ监控

    使用jmx监控可以实时监控ActiveMQ的运行状态,包括队列长度、消息数量、消费者数量等信息。通过jmx监控,可以快速地检测和解决ActiveMQ中的问题,从而提高系统的可靠性和稳定性。 在生产环境中,jmx监控是非常重要...

    activemq监控

    2. **JMX (Java Management Extensions)**:ActiveMQ支持JMX,可以利用JMX管理工具如jconsole或VisualVM来获取详细的性能指标,如内存使用、线程状态、消息速率等。 3. **Metrics插件**:可以集成如Ganglia、...

    ActiveMQ使用手册(中文版)

    - **配置:** 需要在 `conf/activemq.xml` 文件中启用JMX监控。 #### 四、ActiveMQ Broker **4.1 Running Broker:** - **定义:** 运行中的Broker实例。 - **特点:** 可以独立运行或作为集群的一部分。 **4.2 ...

    ActiveMQ消息服务器 v5.17.6.zip

    5. **故障排查**:通过日志文件和JMX监控,可以定位并解决问题。 总之,ActiveMQ作为一款强大的消息中间件,其稳定性和灵活性使其在各种复杂环境中都能发挥出色作用。理解和掌握ActiveMQ的使用,对于提升系统的可靠...

    ActiveMQ开发规范及方案

    ActiveMQ提供了多种消费者监控方式,例如JMX、Advisory等。 MQ 使用场景 MQ(Message Queue)是一种中间件,用于实现系统之间的异步通信。ActiveMQ是一种流行的MQ middleware,广泛应用于分布式系统中。 解耦 ...

    activemq学习心得.docx

    activemq支持JMX监控,可以通过RemoteJMXBrokerFacade来得到BrokerViewMBean。例如: ```java public static void main(String[] args) { RemoteJMXBrokerFacade createConnector = new RemoteJMXBrokerFacade(); ...

    apache-activemq Linux版本

    可以使用Web管理界面或者通过JMX接口来获取运行状态信息。 总结来说,Apache ActiveMQ是Linux环境下的强大消息中间件,提供了丰富的特性和高度的灵活性,对于构建分布式系统和实现微服务架构有着重要的作用。通过...

    ActiveMQ问题解决记录

    "工具"标签可能意味着博主使用了一些辅助工具来调试和监控ActiveMQ,比如使用JMX(Java Management Extensions)进行远程管理,或者使用像ActiveMQ Console这样的Web界面来查看队列状态和日志。此外,可能还涉及了如...

    linux版本ActiveMQ 5.15.8

    - **JMX监控**:通过Java Management Extensions(JMX)工具监控ActiveMQ运行状态。 - **日志配置**:调整`log4j.properties`文件,定制日志级别和输出位置。 通过理解并熟练掌握上述知识点,您可以在Linux环境下...

    apache-activemq-5.12.0-bin

    9. **JMX管理**:通过Java Management Extensions (JMX),ActiveMQ可以被远程管理和监控,方便进行系统运维。 10. **插件系统**:ActiveMQ允许开发者自定义插件,以扩展其功能,满足特定需求。 在解压“apache-...

    ActiveMQ的activemq.xml详细配置讲解

    - `useJmx`属性用于启用或禁用Java管理扩展(JMX),用于远程监控和管理ActiveMQ。 - `persistent`属性控制消息是否持久化到磁盘。如果为`true`,即使服务器重启,消息也不会丢失。 2. **Transport Connectors** ...

    activemq 5.7 官方源代码

    - JMX(Java Management Extensions):ActiveMQ通过JMX提供管理接口,允许监控和配置运行时状态。 深入研究源代码,你将能发现ActiveMQ如何处理事务、保证消息顺序、实现消息的可靠传递以及故障恢复机制。此外,还...

    activemq的安装包

    同时,ActiveMQ支持多种监控工具,如JMX,可以集成到系统监控解决方案中。 九、备份与恢复 定期备份ActiveMQ的数据目录(默认是`$ACTIVEMQ_HOME/data`),以便在出现问题时进行恢复。在更换硬件或升级系统时,可以...

    ActiveMQ实战(英文版)

    7. **管理与监控**:ActiveMQ提供Web控制台和JMX接口,方便用户监控和管理消息代理,包括查看队列状态、配置更改等。 8. **安全性**:ActiveMQ支持多种安全策略,如SSL/TLS加密,以及基于角色的访问控制(RBAC),...

    ActiveMQ实践入门指南_ActiveMQ实践入门指南_源码

    本指南将带你逐步了解如何开始使用ActiveMQ,并深入探讨其核心功能和实践应用。 一、ActiveMQ简介 ActiveMQ是Apache软件基金会的一个项目,它遵循JMS规范,支持多种协议,包括OpenWire、STOMP、AMQP、MQTT和WS-...

    activeMQ JMS 3种创建方式

    JMX允许管理员远程管理和监控Java应用程序,包括ActiveMQ。通过JMX,可以创建和管理QUEUE和TOPIC。 1. 连接JMX:使用JConsole或JMX Console等工具连接到运行中的ActiveMQ服务器。 2. 查找MBean:在MBean浏览器中...

    activeMQ-activeMQ

    8. **管理与监控**:ActiveMQ提供了Web管理控制台和JMX(Java Management Extensions)接口,用户可以轻松监控和管理消息代理的状态,包括查看队列长度、消费速率等关键指标。 9. **插件系统**:ActiveMQ具有丰富的...

    activemq_demo,activeMQ的简单demo

    8. **监控与管理**:ActiveMQ提供了一个Web控制台,允许你监控和管理消息队列、主题和连接。此外,还可以通过JMX(Java Management Extensions)进行远程管理。 9. **示例代码**:在demo中,你会看到具体的Java代码...

    windows下activemq-5.14.1

    - **JMX监控**:通过JMX工具如JConsole或VisualVM可以远程监控ActiveMQ的状态和性能。 8. **安全与最佳实践** - **安全配置**:为了防止未经授权的访问,应合理配置防火墙规则,限制对外接口的访问。 - **性能...

    ActiveMQwindow安装包

    - JMX监控:通过JMX(Java Management Extensions)可以远程监控和管理ActiveMQ,这需要在配置文件中开启JMX支持。 总之,ActiveMQ在Windows上的安装和配置是一个涉及多个步骤的过程,理解每个步骤的作用和配置...

Global site tag (gtag.js) - Google Analytics