Пытаюсь понять, что делает snmp4jAgentJMX и подходит ли мне то, что мне нужно

Я пытался написать агент-оболочку snmp для моего приложения с поддержкой JMX, который будет переводить всю информацию, изложенную в JMX MBeans, в атрибуты SNMP.

Я немного в растерянности, пытаясь понять, с чего начать и что использовать. Из того, что я прочитал, snmp4j, вероятно, является библиотекой snmp для Java, но мне не удалось понять примеры кода, которые находятся в Snmp4jAgent.

Кроме того, прочитав описание для SNMP4JAgentJMX на веб-сайте авторов, я думаю, что Snmp4jAgentJMX мог бы помочь мне написать этот агент, но Я не мог понять, как его использовать. На самом деле, глядя на пример кода (org.snmp4j.agent.mo.jmx.example.JMXTestAgent), я не смог найти часть, где код регистрируется с какой-либо MBean или JMX Factory, что заставило меня предположить, что я не понял правильно, что делает этот код.

Я был бы очень признателен за примеры кода и/или некоторые руководства или документацию для тех, кто не имел опыта работы с SNMP.

Спасибо!!


person Ben    schedule 30.11.2009    source источник


Ответы (2)


Агент SNMP, предоставляемый jmx2snmp, неполный и содержит ошибки. Для написания SNMP-агента осталось совсем немного. Например, SNMPv1 поддерживается неправильно (состояние ошибки). GETBULK не поддерживается (обязателен для SNMPv2). GETNEXT, вызываемый для несуществующего OID в агенте, возвращает не следующий OID, а вместо этого noSuchObject (который никогда не должен возвращаться в GETNEXT), SET вообще не поддерживается и, скорее всего, многие другие проблемы.

Поэтому я рекомендую использовать SNMP4J-AgentJMX вместе с SNMP4J-Agent и SNMP4J (как их автор). Агент примера выполняет сопоставление между JMX и SNMP во время инициализации в классе инструментовки MIB JvmManagementMibInst в методе addJvmManagementMibInstrumentaton.

Здесь вы найдете множество примеров того, как можно сделать описательное отображение. Если у вас уже есть спецификация MIB, вы можете использовать AgenPro для создания класса-заглушки Mib, и вам нужно будет сделать в основном только сопоставление, как показано в примере класса JvmManagementMibInst.java.

Если у вас еще нет MIB, я бы также рекомендовал использовать инструмент дизайнера MIB (например, MIB Designer) для создания MIB, потому что это, скорее всего, интерактивный процесс, и вам придется реструктурировать MIB, когда вы обнаружите более простые способы. для сопоставления с JMX.

person Community    schedule 17.02.2013
comment
Ух ты. Это было 3,5 года назад! Но мне нравится твой ответ :-) - person Ben; 17.02.2013

После долгих исследований я нашел этот пакет, который использует агент snmp4j для переноса JMX и предоставления услуг SNMP.

С этим пакетом все, что вам нужно сделать, это зарегистрироваться в MBean и изменить сопоставление JMX-SNMP.

person Ben    schedule 06.12.2009