Как объекты JMX отображаются в OID SNMP?

#spring #monitoring #jmx #snmp #apache-camel

#spring #мониторинг #jmx #snmp #apache-camel

Вопрос:

У меня есть автономное Java-приложение, написанное на Apache Camel, которое я хочу отслеживать через SNMP. Я думаю, что Camel использует JMX от Spring (@ManagedAttribute, @ManagedResource и т.д.), И я прекрасно вижу различные объекты, связанные с Camel, в JDK jconsole. Когда я запускаю свое приложение с включенным SNMP:

 -Dcom.sun.management.snmp.interface=127.0.0.1
-Dcom.sun.management.snmp.port=16101 
-Dcom.sun.management.snmp.acl=false
  

Я могу подключиться к нему с помощью SNMP browser, и я также могу видеть там много чего. Пока все хорошо, но для того, чтобы я мог использовать это, мне нужно знать или выяснить, как объекты JMX отображаются в OID SNMP. Есть ли способ узнать, как это делается или хотя бы кем — Spring, JVM? Есть мысли?

Ответ №1:

Я не уверен на 100%, что информация, которую я нашел в Google (кстати … первое попадание, да ! ;)), по-прежнему актуальна, и у меня нет средств покопаться и проверить (корпоративная, заблокированная рабочая станция … вздох!), но, похоже, реализация SNMP по умолчанию не очень расширяема.

Согласно «Мониторинг JVM: JMX или SNMP?» вы можете получить доступ только к тому, что определено в JVM-MANAGEMENT-MIB.mib

Мне было бы интересно, изменился ли вопрос за это время…

Комментарии:

1. Хорошая находка. Спасибо. Я просмотрел этот пост, но почему-то эта фраза мне не бросилась в глаза. Из проведенных мной тестов определенно следует, что через SNMP предоставляются только стандартные свойства JMX JVM. Очень жаль:(

Ответ №2:

Я не думаю, что вы можете просто предоставить свои аннотированные компоненты, управляемые Spring, через SNMP. Перечисленные вами параметры командной строки были просто предназначены для мониторинга показателей, касающихся самой JVM, см. Мониторинг и управление SNMP; следовательно, вероятно, нет способа определить OID, но вы должны определить их самостоятельно, предположительно с помощью другой зрелой платформы SNMP или библиотеки.

Ответ №3:

Camel использует javax.management.MBeanServer для регистрации mbeans. Я не помню, чтобы мы что-либо делали в отношении SNMP. Я предполагаю, что JMX обеспечит интеграцию для этого «из коробки», поскольку в JVM есть SNMPAgent, который должен соединяться с JMX.

Комментарии:

1. Ну, я думаю, что это обеспечивает интеграцию, но мой вопрос в том, как мне определить OID (идентификаторы SNMP) из идентификаторов JMX? 🙂

2. кстати, я не пытался ответить на этот вопрос. Просто хотелось бы, чтобы вы могли прокомментировать и использовать тот же «уровень видимости», что и ответ. Потому что, когда люди добавляют комментарии, их легко пропустить.

3. Достаточно справедливо 🙂 Спасибо за комментарий.