OpenNMS пропускает определенные JMX MXBeans при сборе

Я предоставил MBean NotifyFailedTriggers, который предоставляет целочисленное значение. Я правильно настроил файлы конфигурации poller, collectd и jmx-datacollection. Однако демон collectd, похоже, пропускает mbean, говоря, что он не зарегистрирован. Смотрите прикрепленный журнал.

2018-06-12 13:08:41,204 DEBUG [pool-10-thread-8] o.o.n.j.i.DefaultJmxCollector: сбор MBean (objectname=com.example:name=notifyFailedTriggers, wildcard=false)

2018-06-12 13:08:41,205 DEBUG [pool-10-thread-8] o.o.n.j.i.DefaultJmxCollector: сбор имени объекта com.example:name=notifyFailedTriggers

2018-06-12 13:08:41,328 DEBUG [pool-10-thread-8] o.o.n.j.i.DefaultJmxCollector: ObjectName com.example:name=notifyFailedTriggers не зарегистрирован.

2018-06-12 13:08:41,329 DEBUG [pool-10-thread-8] o.o.n.j.i.DefaultJmxCollector: Skip ObjectName com.example:name=notifyFailedTriggers

2018-06-12 13:08:41,510 INFO [Collectd-Thread-15-of-50] o.o.n.c.CollectableService: run: завершен сбор для 3/xx.xx.84.122/onms-poc/example1

2018-06-12 13:08:41,510 DEBUG [Collectd-Thread-15-of-50] o.o.n.s.LegacyScheduler: расписание: добавление готового к запуску CollectableService для службы 3:/xx.xx.84.122:onms-poc (готово через 300000 мс) с интервалом 300000

Это отдельное Java-приложение, предоставляющее доступ к MXBeans.

Есть ли конкретная причина, по которой он считает этот MXBean незарегистрированным и, следовательно, пропускает его?


person Zoheb Nawaz    schedule 12.06.2018    source источник


Ответы (1)


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

За кулисами сборщик JMX спрашивает сервер MBean, зарегистрирован ли объект. Если сервер MBean отвечает, что это не так, сборщик JMX регистрирует вставленное вами сообщение. Вот код сборщика JMX, где это происходит, и вот документация метода isRegistered, который он вызывает для создания эта решимость.

person Jeff Gehlbach    schedule 12.06.2018
comment
Спасибо, что указали мне правильное направление. Я представил свои MBeans, как определено в следующем руководстве: docs.oracle. com/javase/tutorial/jmx/mbeans/mxbeans.html Вместо указанных здесь атрибутов я предоставил два атрибута: один является целым числом, а другой — значением с плавающей запятой. Теперь, как описано в документе, я зарегистрировал MBean на сервере MBean. Я также могу просмотреть то же самое с удаленной консоли JConsole. Не уверен, почему OpenNMS говорит, что он не зарегистрирован. - person Zoheb Nawaz; 18.06.2018
comment
Я тоже не уверен, и мой JMX-fu в настоящее время в лучшем случае посредственен, поэтому я не уверен, куда направить вас дальше. Обычно любой атрибут, доступный из JConsole, доступен для сбора. Вы создали свои определения коллекции JMX с помощью генератора конфигурации графического интерфейса или вручную? Кроме того, какую именно версию OpenNMS вы используете? - person Jeff Gehlbach; 09.07.2018
comment
Я сгенерировал файлы конфигурации JMX вручную (несколько раз проверял правильность файлов). Я использую OpenNMS Horizon версии 22. - person Zoheb Nawaz; 11.07.2018