ActiveMQ JMX监控信息

本文详细介绍了如何在ActiveMQ中启用JMX监控,包括配置useJmx和connectorPort,设置JMX访问账号密码,指定权限,以及验证监控状态的方法。使用cjmx工具连接并查看MBeans实例。

ActiveMQ JMX监控信息

activemq 启用jmx

1.运行一个代理,将代理属性 useJmx 设置为 true ,并将连接物 createConnector 设置为 true ,connectorPort 设置为 要代理的端口号

# conf/activemq.xml
<broker useJmx="true" ...>
 ...
 </broker>
 
 # conf/activemq.xml
 <managementContext>
    <managementContext createConnector="true" connectorPort="11099"/>
</managementContext>

2.设置账号密码

# 如果未设置密码,将无法开启远程连接,如下将注释打开即可


# conf/jmx.access
...
admin readwrite

monitorRole readonly
controlRole readwrite
...

# conf/jmx.password
...
admin activemq

monitorRole abc123
controlRole abcd1234
...
 
# bin/env
...
# ---
#
# ACTIVEMQ_SUNJMX_START="$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"
#ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote"

 ACTIVEMQ_SUNJMX_START="$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"
 ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote"
 ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Djava.rmi.server.hostname=192.168.31.65"
...

3.设置拥有者可读写,其他人不可读写执行

 chmod 600 conf/jmx.*

4.重新启动

 bin/activemq restart
 bin/activemq start
 bin/activemq stop

验证当前服务器的ActiveMQ JMX 是否开启

#如果存在即开启成功
netstat -an |grep 11099

用到的cjmx jar包

cjmxGitHub


ActiveMQ用到的 mbeabs

cjmx

java -cp $JAVA_HOME/lib/tools.jar:cjmx_2.12-2.8.1-app.jar cjmx.Main  "remote-connect 127.0.0.1:11099" "mbeans 'org.apache.activemq:type=Broker&brokerName=localhost' select BrokerName"

example

org.apache.activemq:type=Broker&brokerName=localhost
------------------------------
    BrokerName = localhost

cjmx

java -cp $JAVA_HOME/lib/tools.jar:cjmx_2.12-2.8.1-app.jar cjmx.Main  "remote-connect 127.0.0.1:11099" "mbeans 'org.apache.activemq:type=Broker&brokerName=localhost' select *"

example

java.lang:type=OperatingSystem
------------------------------
    BrokerName = localhost
    ...

cjmx

java -cp $JAVA_HOME/lib/tools.jar:cjmx_2.12-2.8.1-app.jar cjmx.Main  "remote-connect 127.0.0.1:11099" "mbeans 'org.apache.activemq:type=Broker&brokerName=localhost' select *" |grep BrokerName|cut -f 4 -w

example

localhost

Node /index.js

const { exec } = require("child_process");

let jmx_jar = 'cjmx_2.12-2.8.1-app.jar';
let java_cmd = 'java -cp $JAVA_HOME/lib/tools.jar:' + jmx_jar + ' cjmx.Main ';

let kafka_jmx_url = '127.0.0.1:9999';
let username = '';
let password = '';
let jmx_remoteConnect = 'remote-connect ' + kafka_jmx_url;
let jmx_cmd = username ? `${java_cmd} "${jmx_remoteConnect} ${username}"` : `${java_cmd} "${jmx_remoteConnect}"` ;

let mbeans = "mbeans 'kafka.controller:name=LeaderElectionRateAndTimeMs,type=ControllerStats' select OneMinuteRate";
let child = exec(`${jmx_cmd} "${mbeans}"`,null, (err, stdout, stderr) => {
    if(err){
        console.error(err)
    } else if(stdout) {
        console.log(stdout.split('\n'))
    }
})

if(username) {
    child.stdin.write(password+'\n');
    child.stdin.end();
}

// let grep = "|grep OneMinuteRate|cut -f 4 -w"
// exec(`${jmx_cmd} "${mbeans}" ${grep}`,null, (err, stdout, stderr) => {
//     if(err){
//         console.error(err)
//     } else if(stdout) {
//         console.log(stdout)
//     }
// })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值