snmp4jエージェントJMXの機能と、必要なものに適合するかどうかを理解しようとする
質問
JMX MBeanにレイアウトされているすべての情報をSNMP属性に変換するJMX対応アプリケーション用のSNMPラッパーエージェントを作成しようとしています。
どこから始めて何を使うべきかを理解しようとして、私は少し迷っています。私が読んだことから、おそらくsnmp4jはJavaのsnmpライブラリに行くでしょうが、Snmp4jAgentにあるコード例を理解することができませんでした。
また、著者のWebサイトでSNMP4JAgentJMXの説明を読むことで、Snmp4jAgentJMXが書くのに役立つと思いますこのエージェントですが、使用方法を理解できませんでした。実際、サンプルコード(org.snmp4j.agent.mo.jmx.example.JMXTestAgent)を見ると、コードがMBeanまたはJMXファクトリに登録されている部分が見つかりませんでした。このコードが正しく行うこと。
SNMPの経験がない人のために、コード例やチュートリアルやドキュメントを高く評価します。
ありがとう!!
解決
jmx2snmpが提供するSNMPエージェントは不完全であり、エラーがあります。 SNMPエージェントを作成するために行うことはほとんどありません。たとえば、SNMPv1は正しくサポートされていません(エラーステータス)。 GETBULKはサポートされていません(SNMPv2には必須)。エージェントの存在しないOIDで呼び出されたGETNEXTは、次のOIDを返さず、代わりにnoSuchObject(GETNEXTで返されることはありません)、SETはまったくサポートされておらず、他の多くの問題が発生する可能性があります。
したがって、SNMP4J-AgentJMXとSNMP4J-AgentおよびSNMP4Jを(それらの作成者として)使用することをお勧めします。 exmpleエージェントは、メソッドaddJvmManagementMibInstrumentatonのMIB計測クラスJvmManagementMibInstでの初期化中にJMXとSNMPの間のマッピングを行います。
ここでは、記述マッピングを実行する方法の例がたくさんあります。既にMIB仕様がある場合、AgenProを使用してMibスタブクラスを生成できます。サンプルのJvmManagementMibInst.javaクラスに示されているように、基本的にマッピングのみを行う必要があります。
MIBをまだお持ちでない場合は、MIBデザイナーツール(MIBデザイナーなど)を使用してMIBを作成することをお勧めします。これは、おそらくインタラクティブなプロセスであり、 JMXにマッピングする簡単な方法を見つけてください。
他のヒント
よく調べた結果、この snmp4jエージェントを使用してJMXをラップし、SNMPを提供するパッケージを見つけました。サービス。
このパッケージを使用すると、MBeanに登録してJMX-SNMPマッピングを変更するだけで済みます。