ActiveMQ笔记(5):JMX监控
系统上线运行后,及时监控报警是很必要的手段,对于ActiveMQ而言,主要监控的指标有:MQ本身的健康状况、每个队列的生产者数量、消费者数量、队列的当前消息数等。
ActiveMQ支持JMX监控,使用步骤如下:
一、修改conf/activemq.xml
<broker … useJmx="true”>
<managementContext>
<managementContext createConnector="true" connectorPort=“jmx端口号” connectorHost=“本机ip地址" />
</managementContext>
</broker>
二、设置jmx.access、jmx.password的文件权限
chmod 400 conf/jmx.*
(即:将jmx.password, jmx.access这二个文件设置成只读权限,activemq出于安全考虑,要求这二个文件只读)
三、修改bin\activemq 启动shell脚本
找到invoke_start(){ 这段,然后在前面插入:
ACTIVEMQ_CONF=“jmx.password所在位置的物理路目录"
ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=端口号 "
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"
然后重启activemq即可。
然后在jconsole中,可以输入 ip地址:jmx端口号
其中username,password即jmx.password中定义的用户名和密码。
四、 spring中使用JMX
<bean class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean" id="mbeanServerConnection1">
<property name="serviceUrl" value="${mq_jmx_url1}"/>
<property name="connectOnStartup" value="false"/>
<property name="environment">
<props>
<prop key="java.naming.security.principal">
${mq_jmx_user1}
</prop>
<prop key="java.naming.security.credentials">
${mq_jmx_passwor1}
</prop>
</props>
</property>
</bean>
其中serviceUrl的值类似:service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
参考示例:
private List<ActiveMQData> getMonitorDataList(MBeanServerConnection conn, String objectName) {
List<ActiveMQData> datas = new ArrayList<>();
try {
ObjectName objRootName = new ObjectName(objectName);
String brokerName = (String) conn.getAttribute(objRootName, "BrokerName");
String brokerId = (String) conn.getAttribute(objRootName, "BrokerId");
String openWireUrl = (String) conn.getAttribute(objRootName, "OpenWireURL");
//健康状态
ObjectName healthObjName = new ObjectName(objectName + ",service=Health");
String healthStatus = (String) conn.getAttribute(healthObjName, "CurrentStatus");
//遍历队列
ObjectName[] objectNames = (ObjectName[]) conn.getAttribute(objRootName, "Queues");
Arrays.sort(objectNames);
List<String> blackList = monitorConfig.getQueueBlackList();
for (ObjectName queueName : objectNames) {
...
Long queueSize = (Long) conn.getAttribute(queueName, "QueueSize");//队列消息数量
Long producerCount = (Long) conn.getAttribute(queueName, "ProducerCount");//生产者数量
Long consumerCount = (Long) conn.getAttribute(queueName, "ConsumerCount");//消费者数量
Long enqueueCount = (Long) conn.getAttribute(queueName, "EnqueueCount");//入队消息总数
Long dequeueCount = (Long) conn.getAttribute(queueName, "DequeueCount");//出队消息总数
...
}
} catch (Exception e) {
...
}
return datas;
}
其中objectName值,可以在jconsole中查到
ActiveMQ笔记(5):JMX监控的更多相关文章
- ActiveMQ笔记(7):如何清理无效的延时消息?
ActiveMQ的延时消息是一个让人又爱又恨的功能,具体使用可参考上篇ActiveMQ笔记(6):消息延时投递,在很多需要消息延时投递的业务场景十分有用,但是也有一个缺陷,在一些大访问量的场景,如果瞬 ...
- Tomcat调优及JMX监控
Tomcat调优及JMX监控 实验背景 ====================================================== 系统版本:CentOS release 6.5 ( ...
- Jetty服务器jmx监控
Jetty服务器jmx监控 Jetty 服务器增加jmx,jmx-remote模块 1.修改对应jetty服务器的配置文件start.ini追加如下两行–module=jmx–module=jmx-r ...
- zabbix监控tomcat(使用jmx监控,但不使用系统自带模版)
一,zabbx使用jmx监控tomcat的原理分析 1.Zabbix-Server找Zabbix-Java-Gateway获取Java数据 2.Zabbix-Java-Gateway找Java程序(j ...
- zabbix使用jmx监控tomcat
zabbix监控Tomcat/JVM实例性能(115) – 运维生存时间http://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/ zabbi ...
- Linux记录-JMX监控JAVA进程
3.修改xxx.sh 加入export JAVA_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.mana ...
- Linux记录-JMX监控Tomcat上传到falcon
1.登录测试服务器xxxxxx xxxxxx su root输入xxxx 2.先修改Tomcat的启动脚本,(linux下为catalina.sh),添加以下内容: CATALINA_OPTS=&qu ...
- Tomcat开启JMX监控 visualvm
Tomcat开启JMX监控 https://blog.csdn.net/dongdong2980/article/details/78476393
- 服务器开启JMX监控
JMX是一个框架,提供了一种功能,可以实时查询应用程序中通过JMX向外部公布的相应参数或者是其他应用程序,同时也可以通过JMX来实时地调用应用程序使用JMX向外部公布的接口,来完成一些功能操作. 如果 ...
随机推荐
- ORA 各种oraclesql错误
ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出 ...
- sql重置自增长
SQL的自增列挺好用,只是开发过程中一旦删除数据,标识列就不连续了 写起来 也很郁闷,所以查阅了一下标识列重置的方法 发现可以分为三种: --- 删除原表数据,并重置自增列 truncate tabl ...
- ASP.NET Core 中文文档 第三章 原理(5)错误处理
原文:Error Handling 作者:Steve Smith 翻译:谢炀(Kiler) 校对:高嵩(jack2gs).何镇汐 当你的ASP.NET应用发生错误的时候, 你可以采用本文所述的各种方法 ...
- OSGi 基本原理
定义 OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统. 这个框架实现了一个优雅.完整和动态地组价模型.应用程序(称为bundle)无序重新引 ...
- ASP.NET Core Kestrel部署HTTPS
ASP.NET Core配置 Kestrel部署HTTPS.现在大部分网站已经部署HTTPS,大家对于安全越来越重视. 今天简单介绍一下ASP.NET Core 部署HTTPS,直接通过配置Kestr ...
- 一次页面从Jq到Vuejs+PartialView的迁徙
题外话 本篇分享不能帮助你入门vue,入门的文章也是无意义的,官方文档http://cn.vuejs.org/v2/guide/ 已经写的不能再清晰了.希望我们勇敢的主动地给自己创造实践的机会. 手里 ...
- C#开发微信门户及应用(19)-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)
我们知道,企业号主要是面向企业需求而生的,因此内部消息的交流显得非常重要,而且发送.回复消息数量应该很可观,对于大企业尤其如此,因此可以结合企业号实现内部消息的交流.企业号具有关注安全.消息无限制等特 ...
- filter 过滤器(监听)
Filter 过滤器 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, ...
- ActiveMQ(li)
一.ActiveMQ 首先,ActiveMQ不是一个框架,它不是struct,webx,netty这种框架,它更像是tomcat服务器,因为你使用它之前必须启动它,activeMQ和JMS的关系有点类 ...
- 图表插件Charts.js的使用
Charts.js的介绍自行百度 首先下载Charts.js,官网:http://chartjs.cn/ charts.js 托管在了github上,下载下来后加解压出src中的文件即可.其中有cha ...