使用Zabbix进行Apache Artemis队列监控



我想跟踪可能卡在Apache Artemis队列中的数据,我想利用其JMX管理功能与我们的Zabbix实例。

我需要采取哪些步骤才能通过JMX成功将Zabbix连接到Artemis?https://activemq.apache.org/artemis/docs/latest/management.html 中提到的那些对我来说不太清楚。

我不得不禁用内部连接器,并通过将其添加到artemis.profile文件中来反之道而行之:

JAVA_ARGS="$JAVA_ARGS -Dcom.sun.management.jmxremote"
JAVA_ARGS="$JAVA_ARGS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_ARGS="$JAVA_ARGS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_ARGS="$JAVA_ARGS -Dcom.sun.management.jmxremote.port=1099"
JAVA_ARGS="$JAVA_ARGS -Dcom.sun.management.jmxremote.rmi.port=1098"
JAVA_ARGS="$JAVA_ARGS -Djava.rmi.server.hostname=edimq-broker-master-az1.dc01.clouedi.local"

但是,我知道,这种方式绝不安全。

正如文档所述,您需要将其添加到您的management.xml

<connector connector-port="1099"/>

这将在localhost上公开一个JMX连接器,所以如果你想能够从网络上的另一台机器(即你的Zabbix实例(远程访问它,那么你应该做这样的事情:

<connector connector-port="1099" connector-host="myhost" />

此外,如果您在托管代理的计算机上有多个 IP 地址,则需要在artemis.profileJAVA_ARGS变量中设置此系统属性:

-Djava.rmi.server.hostname=myhost

然后使用如下网址将Zabbix实例指向代理:

service:jmx:rmi:///jndi/rmi://myhost:1099/jmxrmi

您可以通过在examples/features/standard/目录中运行 Artemis 附带的jmx示例来查看此操作。只需导航到该目录并运行mvn verify.运行该示例将创建一个代理实例,启动代理实例,并自动运行客户端。示例运行后,您可以转到target/server0目录并查看所有配置文件以将它们与您自己的配置文件进行比较。如果您愿意,您也可以独立于示例启动 broker(通过从target/server0/bin目录运行./artemis run(。一旦代理运行,你应该能够使用 JConsole 连接到它,使用这样的 JMX url 没有问题:

service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi

相关内容

  • 没有找到相关文章

最新更新