如何为ActiveMQ队列设置监控

13

我在ActiveMQ页面上看到,使用JMX可以监控activemq中的队列。如何在不使用unix环境下的任何shell脚本的情况下,通过Java程序获取通知,以检测队列是否有消息(深度较大)或服务间隔时间是否过长。如果可以,请给我一些完成此操作的想法。

3个回答

17

如果不使用JMX,您还可以使用由activemq控制台页面提供的XML feed。 XML feed托管在http://ip:port/admin/xml/queues.jsp

每个队列都会有类似于这样的标签:

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

只需在您的代码中解析此XML,就可以开始了。


6

1

是的,Java可以实现。

从ActiveMQ版本5.8开始,jolokia代理程序被嵌入其中。因此,您可以使用HTTP请求获取JMX可以提取的所有统计信息,该请求将返回JSON格式的统计信息,然后您可以检查当前值并在超出您决定的阈值时使用SMTP引发电子邮件警报。

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

或者,如果您不想经历这一切麻烦,您可以使用我创建的现成Python脚本来监视AMQ Heap、Queue参数和Broker可用性。您可以看一下,它可能会帮助您开发自定义脚本或程序。

AMQMonitor and Alerting script


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接