使用Zabbix的Apache Artemis队列监视

时间:2018-10-24 11:15:21

标签: jmx zabbix activemq-artemis

我想跟踪可能滞留在Apache Artemis队列中的数据,我想将其JMX管理功能与我们的Zabbix实例一起使用。

要通过JMX成功将Zabbix连接到Artemis,我需要采取什么步骤? https://activemq.apache.org/artemis/docs/latest/management.html中提到的内容对我来说还不太清楚。

2 个答案:

答案 0 :(得分:0)

the documentation所述,您需要将其添加到management.xml

<connector connector-port="1099"/>

这将在localhost上公开一个JMX连接器,因此,如果您希望能够从网络上的另一台计算机(即Zabbix实例)远程访问它,则应执行以下操作:

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

此外,如果托管代理的计算机上有多个IP地址,则需要在JAVA_ARGS的{​​{1}}变量中设置此系统属性:

artemis.profile

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

-Djava.rmi.server.hostname=myhost

您可以通过在service:jmx:rmi:///jndi/rmi://myhost:1099/jmxrmi 目录中运行Artemis附带的jmx示例来查看此操作。只需导航到该目录并运行examples/features/standard/。运行该示例将创建一个代理实例,启动该代理实例,然后自动运行所有客户端。在示例运行之后,您可以进入mvn verify目录并查看所有配置文件以将它们与您自己的配置文件进行比较。如果愿意,也可以独立于示例启动代理(通过从target/server0目录运行./artemis run)。代理运行后,您应该能够使用JConsole毫无问题地使用JConsole连接到它,如下所示:

target/server0/bin

答案 1 :(得分:0)

我必须禁用内部连接器,然后通过将其添加到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"

但是,我知道,这种方式除了安全之外什么都没有。