【问题标题】:How to monitor ActiveMQ Artemis如何监控 ActiveMQ Artemis
【发布时间】:2021-09-28 03:54:31
【问题描述】:

我正在 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 中则没有。我什至尝试按照 link 将 Openwire 添加到 Wildfly,但它也不起作用。
  • @mindfxxxedCoder 不,我是独立运行的,抱歉!
  • 我很害怕,无论如何感谢您的回复,祝您好运! ;)

标签: activemq-artemis nms


【解决方案1】:

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

JMX(Java 管理服务)

JMX 是用于管理 Java 服务器的 Java API。有多个 GUI 通过 JMX 连接到 Java 服务器。最值得注意的是 jConsole。有其他 GUI 的列表 here 或 there,或者你可以 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 由 Red Hat 制作。编译插件并得到一个.war 文件。 Artemis 包含一个内置的 Jetty 网络服务器。你需要把那场战争交给apache-artemis-1.3.0/web。您还需要将hawtio-default.war 从http://hawt.io/getstarted/index.html 下载到同一目录。然后,在实例目录中,编辑 etc/bootstrap.xml 并将这些战争添加到配置中。

或者你可以get Red Hat AMQ 7,目前在Alpha,它内置了管理插件。启动它并转到localhost:8161/hawtio。我在一家销售该产品的公司工作。

普罗米修斯和格拉法纳

a repository 和 an accompanying blogpost 描述了使用 ActiveMQ Artemis 设置 Prometheus 和 Grafana,均在 OpenShift 中运行。

jmx exporter for Prometheus 包含 example config for Artemis 2 以开始使用。

【讨论】:

  • 我仍然对缺少好的管理控制台感到惊讶,比如 ActiveMQ 的 ActiveMQWeb。虽然它并不完美,但至少你可以在一页上看到所有队列的状态(待处理的消息、消费者等)。 JMX 计数器必须一一浏览,操作非常缓慢且不友好。
  • Appdynamix 扩展是否可用于 ActiveMQ Artemis?
  • @JohnSmith 我不知道。您可以将 Appdynamix 指向 Artemis 中的 JMX 管理界面,它会尝试从中提取一些有用的指标,docs.appdynamics.com/display/PRO43/Monitor+JMX。监控可能是 Artemis 项目中讨论的话题。有许多收藏家,每个收藏家都有自己的生态系统。其中哪些值得追求?
  • @user7610,我正在使用 AppD 的 ActiveMQ 扩展。这是很好的开始。使用 JMXRemote(在 artemis.profile 中启用)就可以了。但是,我想要它来自本地主机。默认情况下,为 AMQ 的 localhost 启用 JMX。 AMQ 管理控制台在内部使用 jmx,它在没有启用 JMXRemote 的情况下工作。 jolokia 在内部使用什么服务 URL 来使用来自 localhost 的 JMX 进行连接?很抱歉给你这个直接的问题。谢谢。
  • @JohnSmith 您能否将您的问题作为新项目发布在 StackOverflow.com 网站上? Artemis 开发人员正在监视activemq-artemis 标签,应该能够比我回答得更好。
【解决方案2】:

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

监控代理的最强大、最灵活的方法是使用metrics plugin。指标插件允许与 CloudWatch、Datadog、Dynatrace、Elastic、Prometheus 等专业监控工具集成。提供Prometheus metrics plugin implementation。结合a Grafana dashboard 的可视化和警报功能非常强大。

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 2021-02-25
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    相关资源
    最近更新 更多