如何监控 ActiveMQ Artemis

How to monitor ActiveMQ Artemis

我正在 Windows .NET 环境中使用 RabbitMQ、ActiveMQ“Classic”和 ActiveMQ Artemis 进行一些测试。 RabbitMQ 和 ActiveMQ“Classic”附带一个 Web 界面,您可以在其中查看有关代理、队列、消息等的信息,但 ActiveMQ Artemis 没有。我真的希望能够在 Web 界面中或至少使用一些 cmd/PowerShell 命令来监控我的 ActiveMQ Artemis 代理。

我在 this page 上读到过一些可用于监控 ActiveMQ 实例的第三方工具,我认为它也适用于 Artemis。不幸的是,我无法使用这些第三方工具。其中有些似乎在 Windows 上效果不佳,有些在 old/inactive.

上效果不佳

我的客户通过 C# 中的 NMS (.NET Messaging API) 与经纪人通信。如果有人能够监控他们的 Artemis 代理,尤其是在 Windows 机器上,请告诉我你是怎么做到的!

编辑: 我现在已经设法与 Jolokia REST API 进行通信。通过 GET 请求:

http://username:password@localhost:8161/jolokia/read/org.apache.activemq.artemis:*

我能够看到关于我的队列的大量信息,例如添加和使用的消息。这是对我有帮助的很好的信息,但我想要有关当前内存使用情况和磁盘使用情况的信息。

看看 Artemis 手册的 Management chapter。据我所知,您可以选择以下选项

JMX(Java 管理服务)

JMX is a Java API for managing Java servers. There are multiple GUIs that connect to java servers via JMX. The most notable being jConsole. There is a list of other GUIs here or there, or you could build your own

jConsole

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

约洛基亚

Jolokia, tutorial,是 JMX 之上的 JSON API 层。它使 JMX 接口可通过 HTTP(S) 访问。您可以使用任何 HTTP 客户端库查询信息。你已经在你的问题中想到了这一点。同样,最重要的是 GUI,最值得注意的是

Hawt.io Artemis 插件

Hawt.io 是一个 Angular.js 管理控制台。它可以被认为是 Jolokia 的 GUI。

Artemis 2.6 及更新版本

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

阿尔忒弥斯 1

同一目录中有一个 hawt.io plugin for Artemis made by Red Hat. Compile the plugin and get a .war file. Artemis contains a built-in Jetty webserver. You need put that war to apache-artemis-1.3.0/web. You also need to download hawtio-default.war from http://hawt.io/getstarted/index.html。然后,在实例目录中,编辑etc/bootstrap.xml并将这些战争添加到config.

或者你可以 get Red Hat AMQ 7, currently in Alpha, which has the management plugin built in. Start it up and go to localhost:8161/hawtio。我在一家销售该产品的公司工作。

Prometheus 和 Grafana

a repository and an accompanying blogpost 描述了 Prometheus 和 Grafana 与 ActiveMQ Artemis 的设置,全部 运行 在 OpenShift 中。

jmx exporter for Prometheus contains example config for Artemis 2开始。

监控代理最简单的方法是使用 ActiveMQ Artemis web console。这是在 2.3.0(2017 年 9 月发布)中添加的。当时是基于Hawtio 1,最近更新到Hawtio 2.

监控代理最强大和灵活的方法是使用metrics plugin. Metrics plugins allow integration with specialized monitoring tools like CloudWatch, Datadog, Dynatrace, Elastic, Prometheus, etc. A Prometheus metrics plugin implementation is available. That combined with a Grafana dashboard进行可视化和警报非常强大。