Мониторинг очереди Apache Artemis с помощью Zabbix
Я хотел бы отслеживать данные, которые могут застрять в очередях Apache Artemis, и я хотел бы использовать его возможности управления JMX вместе с нашим экземпляром Zabbix.
Какие шаги мне нужно предпринять, чтобы успешно подключить Zabbix к Artemis через JMX? Те, что упомянуты в https://activemq.apache.org/artemis/docs/latest/management.html, мне не совсем понятны.
2 ответа
Мне пришлось отключить внутренний разъем и пойти наоборот, добавив это в 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"/>
Это выставит разъем JMX на localhost
поэтому, если вы хотите иметь доступ к нему удаленно с другого компьютера в вашей сети (например, с вашего экземпляра Zabbix), вам следует сделать что-то вроде:
<connector connector-port="1099" connector-host="myhost" />
Кроме того, если у вас есть несколько IP-адресов на компьютере, на котором размещен брокер, вы можете установить это системное свойство в JAVA_ARGS
переменная в artemis.profile
:
-Djava.rmi.server.hostname=myhost
Затем укажите свой экземпляр Zabbix на брокера, используя URL-адрес, например:
service:jmx:rmi:///jndi/rmi://myhost:1099/jmxrmi
Вы можете увидеть это в действии, запустив jmx
пример с Артемидой в examples/features/standard/
каталог. Просто перейдите в этот каталог и запустите mvn verify
, Выполнение примера создаст экземпляр посредника, запустит экземпляр посредника и автоматически запустит клиент. После запуска примера вы можете перейти в target/server0
каталог и посмотрите на все файлы конфигурации, чтобы сравнить их с вашими. Вы также можете запустить брокера независимо от примера, если хотите (запустив ./artemis run
от target/server0/bin
каталог). После запуска брокера вы сможете без проблем подключиться к нему с помощью JConsole, используя URL-адрес JMX, например:
service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi