Два интерфейса JMX на одном хосте: как дублировать элементы JMX? - PullRequest
0 голосов
/ 28 октября 2019

На хосте запущено два приложения Java, которые предоставляют данные JMX (Приложение 1: JBoss Wildfly. Приложение 2: Apache Tomcat)

Я настроил два интерфейса JMX в конфигурации хоста на Zabbix-сервере. Теперь я хочу создать некоторые элементы, которые будут получать данные JVM? Например:

jmx["java.lang:type=ClassLoading",LoadedClassCount]

Я не могу создать два элемента с одинаковым ключом. Как я могу обойти этот контроль?

1 Ответ

0 голосов
/ 28 октября 2019

Краткий ответ: для этого нет решения.

Длинный ответ:

Почему вы не хотите этого делать

Из-за ошибки https://support.zabbix.com/browse/ZBXNEXT-4677, Zabbix неправильно обрабатывает несколько интерфейсов одного типа. Если один из интерфейсов недоступен (например, JVM работает медленно или не работает), Zabbix прекращает мониторинг других интерфейсов того же типа.

Все равно делает это

Взломать это вручную в конфигурации

Вы можете вручную редактировать элементы, чтобы ключи отличались друг от друга - например, добавление пробела после запятой сделало бы ключ другим, но он все равно работал бы так же. Конечно, это полностью разрушает шаблоны и не является устойчивым за пределами пары элементов.

Взлом этого в исходном коде Java-шлюза

Вы можете взломать Java-шлюз, чтобы проигнорировать третий параметр. Таким образом, LLD может разместить порт в качестве третьего параметра (а также в URL-адресе JMX), сделав ключи уникальными.

https://support.zabbix.com/browse/ZBXNEXT-4510 запросил изменение, которое будет включено в шлюз, но было отклонено.

Запросы функций

Эти запросы функций могут удовлетворить ваши потребности, но лучшее, что вы можете сделать, это проголосовать за них.

...