如何监控ActiveMQ Artemis

7
我正在Windows .NET环境中测试RabbitMQ、ActiveMQ“Classic”和ActiveMQ Artemis。RabbitMQ和ActiveMQ“Classic”都有一个Web界面,可以查看关于代理、队列、消息等的信息,但是ActiveMQ Artemis没有。我真的希望能够在Web界面或至少通过一些cmd/PowerShell命令监视我的ActiveMQ Artemis代理。
我在this page上阅读到了一些第三方工具,可以用于监视ActiveMQ实例,并且我认为它也适用于Artemis。不幸的是,我无法让这些第三方工具正常工作。其中一些在Windows上似乎无法正常工作,而另一些则已经过时/不活跃。
我的客户端通过C#中的NMS(.NET Messaging API)与代理进行通信。如果有人能够监视他们的Artemis代理,特别是在Windows机器上,请告诉我你是如何做到的!
编辑: 我现在已经成功地与Jolokia REST API进行了通信。使用GET请求:
http://username:password@localhost:8161/jolokia/read/org.apache.activemq.artemis:*

我能看到有关我的队列的许多信息,例如添加和消耗的消息。这是有用的信息,将对我有所帮助,但我想了解当前内存使用情况和磁盘使用情况。

你好。非常抱歉,我无法真正帮助您解决问题,但我尝试实现类似的东西并想问您一些问题: 您的Apache Artemis是否偶然嵌入在Wildfly 10中运行? 因为我尝试使用Apache NMS连接到这样的实例,但我无法使其运行。 当Apache Artemis独立运行时,没有问题,但它不能在Wildfly中运行。 我甚至尝试通过按照此[链接](http://activemq.2283324.n4.nabble.com/Issue-with-Wildfly-10-and-Net-NMS-Client-td4703766.html)添加Openwire到Wildfly,但也不起作用。 - mindfxxxedCoder
@mindfxxxedCoder 不好意思,我在独立运行它,抱歉! - Jooooooooohn
我本来就有点担心,不过还是谢谢你的回复,祝你好运解决问题!;) - mindfxxxedCoder
2个回答

11

请查看 Artemis 手册的 管理章节。据我所知,您可以使用以下选项:

JMX(Java Management Service)

JMX 是用于管理 Java 服务器的 Java API。有多个 GUI 可以通过 JMX 连接到 Java 服务器。最著名的是 jConsole。这里那里 有其他 GUI 的列表,或者您可以 构建自己的GUI

jConsole

enter image description here

jConsole是一个GUI应用程序,您可以连接到启用了JMX的服务器。它是Java JDK的一部分,所以您可能已经安装了它。

Jolokia

Jolokiatutorial,是JMX上的JSON API层。它使得可以通过HTTP(S)访问JMX接口。您可以使用任何HTTP客户端库查询信息。您在问题中已经弄清楚了这一点。同样,还有基于此的GUI界面,其中最著名的是

Hawt.io Artemis插件

enter image description here

Hawt.io是一个基于Angular.js的管理控制台,可以将其视为Jolokia的图形用户界面。

Artemis 2.6及以上版本

Hawt.io插件已内置,无需额外设置。

Artemis 1

Red Hat制作了Artemis的hawt.io插件。编译插件并获取.war文件。Artemis包含内置的Jetty Web服务器。您需要将该war放入apache-artemis-1.3.0/web中。您还需要从http://hawt.io/getstarted/index.html下载hawtio-default.war到同一目录下。然后,在实例目录中,编辑etc/bootstrap.xml并将这些war添加到配置中。

您可以使用目前处于Alpha测试阶段的Red Hat AMQ 7,其中已经内置了管理插件。启动它并转到localhost:8161/hawtio。我为销售该产品的公司工作。

Prometheus和Grafana

Grafana ActiveMQ Artemis

这里有一个代码库一篇相关博客文章,介绍了如何在OpenShift中配置Prometheus和Grafana与ActiveMQ Artemis配合使用。

Prometheus的JMX exporter包含Artemis 2的示例配置以便快速上手。


4
我仍然对缺乏良好的管理控制台感到惊讶,比如ActiveMQWeb用于ActiveMQ。 尽管它并不完美,但至少您可以在一个页面上一目了然地查看所有队列的状态(挂起消息,消费者等)。 JMX计数器必须逐个浏览,这使操作非常缓慢且不便于用户使用。 - рüффп
Appdynamix扩展是否适用于ActiveMQ Artemis? - John Smith
@JohnSmith 我不知道有没有这样的功能。你可以将Appdynamix指向Artemis中的JMX管理接口,它会尝试从中提取一些有用的指标,https://docs.appdynamics.com/display/PRO43/Monitor+JMX。监控可能是Artemis项目讨论的话题之一。有许多收集器,每个都有自己的生态系统。哪一个值得追求呢? - user7610
@user7610,我正在使用AppD的ActiveMQ扩展。它很好用。通过启用artemis.profile中的JMXRemote,它可以正常工作。但是,我想从本地主机上使用它。AMQ默认情况下为localhost启用了JMX。AMQ管理控制台在内部使用jmx,并且在没有启用JMXRemote的情况下也可以正常工作。jolokia在内部使用什么服务URL来连接本地主机上的JMX?抱歉直接向您提出这个问题。谢谢。 - John Smith
@JohnSmith,您能否在StackOverflow.com网站上发布您的问题作为一个新项目吗?Artemis开发人员正在监控activemq-artemis标签,应该比我更能提供答案。 - user7610
感谢您在https://stackoverflow.com/questions/50218209/appdynamics-monitoring-with-amq-7-0-1上的提问。 - user7610

0

监控代理最简单、最容易的方法是使用ActiveMQ Artemis web控制台。这个功能在2.3.0版本中添加(于2017年9月发布)。当时它基于Hawtio 1,但最近已更新为Hawtio 2。

监控代理最强大、最灵活的方法是使用指标插件。指标插件允许与专业监控工具(如CloudWatch、Datadog、Dynatrace、Elastic、Prometheus等)集成。Prometheus指标插件实现可用。结合Grafana仪表板进行可视化和警报非常强大。


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