如何在activemq中设置Monitoring队列

时间:2011-11-11 19:47:41

标签: activemq monitoring jmx

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

3 个答案:

答案 0 :(得分:14)

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

每个队列都有与此类似的标签:

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

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

答案 1 :(得分:6)

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

对于通知方法,您需要使用advisory messages来监控传递到队列的消息(请参阅this guide

答案 2 :(得分:1)

是的,可以在Java中使用。

在较新版本的ActiveMQ中,jolokia代理程序嵌入其中。因此,您可以使用HTTP请求获取JMX可以提取的所有统计信息,这将使您的统计信息恢复为JSON,然后您可以检查当前值并使用SMTP提高电子邮件警报,如果值超出您已决定的阈值。

假设您想在浏览器中使用Jolokia命中以下URL来提取Broker统计信息输入AMQ控制台用户名和密码,默认为admin http://servername.com:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost

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

AMQMonitor and Alerting script