SNMP(Simple Network Management Protocol)のツールはたくさんあるけど、内部で使っているライブラリ
は結構同じフリーのライブラリを使っていたりするもので、中でもsnmp4j を使っているツールをよく目にします。
snmp4jのページ
http://www.snmp4j.org/index.html
ダウンロードから「SNMP4J sources and library v.xx」を選択してzipファイルを取得して、解凍すると snmp4j\dist\lib
配下に SNMP4J.jar が入っているので、これを使います。
* src:ソースフォルダも同胞されているので見てみると、src\org\snmp4j 配下の Snmp.java というクラスが中心に
なっているクラスらしい。
ただ、このクラスを解析して、自作でSnmp.java を利用するクラスを作成するのは大変なので、
snmp4j\src\org\snmp4j\tools\console 配下の SnmpRequest.java を利用するのが簡単です。
SnmpRequest.javaにはmainメソッドがあり、引数を与えて実行することで SNMP Get などのリクエストを
実行できます。
SnmpRequestの実行手順はこんな感じです。
> java -cp <フォルダパス>\SNMP4J.jar org.snmp4j.tools.console.SnmpRequest [オプション] address [OID]
zipファイルを Cドライブ直下に解凍した場合の例:
●localhostのsysNameを取得
* アドレスが「127.0.0.1」、sysNameのOIDは「1.3.6.1.2.1.1.5」です。
C:\>java -cp "C:\snmp4j\dist\lib\SNMP4J.jar" org.snmp4j.tools.console.SnmpRequest -v 2c 127.0.0.1 1.3.6.1.2.1.1.5
2009/05/12 10:03:06 org.snmp4j.log.JavaLogAdapter log 情報: UDP receive buffer size for socket 127.0.0.1/0 is set to: 8192 Received response after 32 millis Response received with requestID=623926875, errorIndex=0, errorStatus=Success(0)
1.3.6.1.2.1.1.5.0 = SNMPMACHINE ← sysNameを取得している!!!
|
●localhostのSNMPの全OID情報をSNMP WALKで取得
* SNMP WALKを実行する際のオプションは「-Ow」です。
C:\>java -cp "C:\snmp4j\dist\lib\SNMP4J.jar" org.snmp4j.tools.console.SnmpRequest -v 2c -Ow 127.0.0.1
1.3.6.1.2.1.1.1.0 = Hardware: x86 F------------------ 1.3.6.1.2.1.1.2.0 = 1.3.6.1.4.1.311.1----------------- 1.3.6.1.2.1.1.3.0 = 0:57:24.52
( 長いので途中、省略.. )
1.3.6.1.4.1.77.1.3.5.0 = 0 1.3.6.1.4.1.77.1.3.7.0 = 0 1.3.6.1.4.1.77.1.4.1.0 = A------------------ ← 最終OIDまでWALKで取得!!!
Total requests sent: 283 Total objects received: 2827 ← localhostから2827件のOID情報を取得した!!! Total walk time: 3000 milliseconds
|
●localhostにSNMP Trapを送信
* SNMP Trapを送信する際のオプションは「-p TRAP」です。
localhostの162番ポートにSNMP v2 Trapを送信しています。Trapを受信できるツール等を使って確認できます。(画面)
C:\>java -cp "C:\snmp4j\dist\lib\SNMP4J.jar" org.snmp4j.tools.console.SnmpRequest -v 2c -p TRAP localhost/162
2009/05/12 11:03:06 org.snmp4j.log.JavaLogAdapter log 情報: UDP receive buffer size for socket 127.0.0.1/0 is set to: 8192 TRAP sent successfully ← Trap送信成功!!!
|
★その他の SnmpRequest を実行する際のオプションは ココ にSnmpRequest.java 内に記載のコメントを貼っています。★