如何在activemq中设置队列监视

如何在activemq中设置队列监视,activemq,monitoring,jmx,Activemq,Monitoring,Jmx,我在ActiveMQ页面中读到,使用JMX我们可以监视ActiveMQ中的队列。在ActiveMQ中,如果队列具有消息(深度高)或服务间隔高,我们如何得到通知。在unix环境中不使用任何shell脚本。通过Java程序可以吗?如果是,请给我一些想法来完成这项工作 您可以通过API使用Java定期轮询队列统计信息(请参阅) 对于通知方法,您需要使用来监视传递到队列的消息(请参见)对于无JMX的方法,您还可以使用activemq控制台页面提供的XML提要。XML提要托管在http://ip:port

我在ActiveMQ页面中读到,使用JMX我们可以监视ActiveMQ中的队列。在ActiveMQ中,如果队列具有消息(深度高)或服务间隔高,我们如何得到通知。在unix环境中不使用任何shell脚本。通过Java程序可以吗?如果是,请给我一些想法来完成这项工作

您可以通过API使用Java定期轮询队列统计信息(请参阅)


对于通知方法,您需要使用来监视传递到队列的消息(请参见)

对于无JMX的方法,您还可以使用activemq控制台页面提供的XML提要。XML提要托管在
http://ip:port/admin/xml/queues.jsp

对于每个队列,这将具有与此类似的标记:

<queue name="your queue">
<stats size="0" consumerCount="1" enqueueCount="0" dequeueCount="0"/>
....
</queue>

....

只要在代码中解析这个XML,就可以了。

是的,这在Java中是可能的

从ActiveMQ jolokia代理的5.8版开始,它是嵌入式的。所以,您可以使用HTTP请求获取JMX可以获取的所有统计数据,该请求将把您的统计数据返回为JSON,然后您可以检查当前值,并在值超出您决定的阈值时使用SMTP发出电子邮件警报

假设您想在浏览器中使用Jolokia hit在URL下方输入AMQ控制台用户名和密码(默认为admin)来获取代理统计数据

或者,如果您不想经历所有这些麻烦,您可以使用我创建的现成Python脚本来监视AMQ堆、队列参数和代理可用性。您可以看看,它可能会帮助您开发custiom脚本或程序