当前位置: 首页 > 知识库问答 >
问题:

如何为ActiveMQ Artemis监视查找/定义JMX密钥

沈自珍
2023-03-14

我在Artemis上启用了JMX作为struct中的文档,并构建了JMX示例。据我所知,这只涉及向代理中的这两个文件添加以下行:

management.xml

<connector connector-port="1099" connector-host="192.168.56.101" />

打开端口:sudo ufw允许1099

<jmx-management-enabled>true</jmx-management-enabled>

在这个示例中,有一个jmwexample.java程序。它连接到Artemis,发布消息,使用JMX计算消息,然后删除消息--但我看不到任何MBeans的键。

此外,在Artemis的管理控制台中有一个JMX选项卡,它列出了我认为所有可用的要监视的内容。例如,我有一个名为“test.queue”的队列。在JMX选项卡下,我发现:

org.apache.activemq.artemis:broker="0.0.0.0",component=addresses,address="test.topic",subcomponent=queues,routing-type="multicast",queue="test.queue" 

并且列出了许多方法,包括countMessages()。我在这里回答了我自己的问题吗?这就是我要找的吗?

我正在看控制台上的JMX选项卡。如果我理解正确的话,密钥应该有如下格式:jmx[object_name,attribute_name]

因此,我在JMX选项卡下看到一个测试队列的对象名称是:org.apache.activemq.artemis:broker=“0.0.0.0”,component=address,address=“test.topic”,subcomponent=queues,routing-type=“multicast”,queue=“test.queue”

它的属性为:MessageCount

所以我做了这个,这不起作用。我还尝试用IP地址替换0.0.0.0。

JMX[org.apache.activemq.artemis:broker=“0.0.0.0”,component=地址,address=“test.topic”,subcomponent=queues,routing-type=“multicast”,queue=“test.queue”,messageCount]

共有1个答案

杜哲彦
2023-03-14

的默认值是true,因此不需要显式配置。

您可以通过使用JVM附带的JConsole或JVisualVM等工具连接到代理来确认是否启用了JMX。理想情况下,您可以在本地执行此操作,以避免任何网络配置问题。

代理公开了许多不同的MBeans,用于管理代理的所有部分。以下是具有默认MBean对象命名模式的不同“控件”对象:

    null
jmx["org.apache.activemq.artemis:broker=\"localhost\",component=addresses,address=\"myAddress\",subcomponent=queues,routing-type=\"anycast\",queue=\"myQueue\"",MessageCount]

这个格式是基于这个Zabbix块帖子,也在这个Zabbix论坛线程上讨论。

明确地说,您引用的JMXExample使用了一个名为GetQueueObjectName的方便的帮助器方法来构造MBean的对象名。

如果您需要快速启动并运行一个支持远程JMX客户机的代理,请执行以下操作:

    null
 类似资料:
  • 我有一个Akka应用程序(Akka 2.2.0、akka-camel、camel 2.10.5)。该应用程序包括生产者组件,即: 这导致一系列骆驼信息显示为mbeans(例如,从VisualVM中可以看到),但在“endpoint”下没有关于我的生产者演员的信息。 我试着用 这似乎没有任何效果。文件上说 我到底需要做什么来启用对我的akka-camelendpoint的JMX监视(由于使用Prod

  • jmxmon是一个基于open-falcon的jmx监控插件,通过这个插件,结合open-falcon agent,可以采集任何开启了JMX服务端口的java进程的服务状态,并将采集信息自动上报给open-falcon服务端 主要功能 通过jmx采集java进程的jvm信息,包括gc耗时、gc次数、gc吞吐、老年代使用率、新生代晋升大小、活跃线程数等信息。 对应用程序代码无侵入,几乎不占用系统资源

  • New in Django 1.7. Django为过滤提供了大量的内建的查找(例如,exact和icontains)。这篇文档阐述了如何编写自定义查找,以及如何修改现存查找的功能。关于查找的API参考,详见查找API参考。 一个简单的查找示例 让我们从一个简单的自定义查找开始。我们会编写一个自定义查找ne,提供和exact相反的功能。Author.objects.filter(name__ne

  • 我们有多个基于Web逻辑和Tomcat的应用程序。对于这些具有不同垃圾收集格式的不同java应用程序,获得用于监视堆问题、占用线程等的“标准”方法的典型解决方案是什么。 通常我想做的是从这些应用程序中获取最后一次完全垃圾收集和常规垃圾收集条目,并从它们中获取初始最大值。进行计算,将数据保存到进行报告,并在达到阈值时生成警报。 最好的方法是什么? 谢谢博帕利

  • 主要内容:前记,1.自定义视图,2.自定义异常,3.自定义异常的原理前记 在前面的文章中, 表示了视图解析的原理和异常解析器的解析原理。 这篇通过如何自定义视图和自定义异常处理和自定义异常处理的原理进行说明。 这里说明一下, 自定义的视图和自定义的异常都是会代替容器默认的组件的, 异常还好说, 就是不符合就抛, 视图的话需要注意一下优先级, 可以在自定义的视图解析器上加上注解。 1.自定义视图 这里原理就是添加一个视图和视图解析器, 然后放入容器中, 最后访问相应

  • 我正在使用JMX远程监控我的服务器。但是,jmx-access和jmx密码存储我不想要的清除密码。 接下来是如何为JConsole的密码文件加密密码,如何使JMX自定义身份验证工作?以及如何创建登录模块?,我编写了一个自定义登录模块。 我的登录模块: 这是我的登录模块配置文件(d:/mysecurity.cfg): 启动服务器时,我使用以下参数: 然而,当我试图用JCsonle连接服务器时,我无法