#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. Достаточно справедливо 🙂 Спасибо за комментарий.