【问题标题】: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 的列表 herethere,或者你可以 build your own

jConsole

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

乔洛基亚

Jolokiatutorial 是基于 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.warhttp://hawt.io/getstarted/index.html 下载到同一目录。然后,在实例目录中,编辑 etc/bootstrap.xml 并将这些战争添加到配置中。

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

普罗米修斯和格拉法纳

a repositoryan 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
    相关资源
    最近更新 更多