この特集のトップページへ
この回のトップページへ

●OIDツリーの一覧を得る

 オブジェクトのツリー構造を知るには,snmpdと接続して,snmpdがもっている管理情報領域内のオブジェクトの一覧を参照しておくとより理解が早いだろう。

 ucd-snmpには,特定の階層ツリー以下のオブジェクトを一覧表示するsnmpwalkというコマンドが用意されている。snmpwalkコマンドは,次の書式で用いる

snmpwalk ホスト名コミュニティ名OID


snmpwalkコマンドやすぐあとに説明するsnmpgetコマンドの実行にあたり,root権限は必要ない。

 ホスト名には接続したいSNMPエージェントのホスト名またはIPアドレスを,コミュニティ名には接続に使うコミュニティ名を指定する。ここで指定するコミュニティ名は,snmpd.confファイル内のcom2secで指定したものだ。OIDには,取得したい階層ツリーとなるオブジェクトのOIDの先頭に“.”(ピリオド)を付けて指定する。すべてのオブジェクトを取得したければ,OIDとして単に“.”を指定すればよい。もし特定のツリー以下を表示したいのであれば,そのツリーのオブジェクトのOIDを指定する。たとえばFig.3に示したmib-2サブツリー以下を取得したいのであれば,“.1.3.6.1.2.1”というOIDを指定する。


OIDの先頭に“.”を付けるのはsnmpwalkコマンドの仕様的な問題だ(後述するsnmpgetコマンドも同様)。先頭の“.”を省略した場合,“1.3.6.1.2.”が省略されたものとみなされる。また,OIDの代わりに,英字名を使うこともできる。たとえば,mib-2サブツリーを示すのに“.iso.org.dod.internet.mgmt.mib-2”と指定してもよい。

 たとえば,localhost(自分自身)に対して,コミュニティ名privateで接続し,全ツリーの一覧を取得するには,次のようにする。

$ snmpwalk localhost private .


snmpwalkコマンドは/usr/local/binに格納されている。パスが通っていない場合には,/usr/local/bin/snmpwalkとフルバスで実行すればよい。後述するsnmpgetコマンドも同様だ。

 すると,次のように,全ツリーの一覧が表示される。

system.sysDescr.0 = Linux tiger.example.co.jp 2.2.14-5.0 #1 Tue Mar 7 21:07:39 EST 2000 i686
system.sysObjectID.0 = OID: enterprises.ucdavis.ucdSnmpAgent.linux
system.sysUpTime.0 = Timeticks: (40995719) 4 days, 17:52:37.19
system.sysContact.0 = Fumitaka Osawa <osawa@example.co.jp>
system.sysName.0 = tiger.example.co.jp
system.sysLocation.0 = Red Hat Linux Server
system.sysORLastChange.0 = Timeticks: (0) 0:00:00.00
system.sysORTable.sysOREntry.sysORID.1 = OID: ifMIB
system.sysORTable.sysOREntry.sysORID.2 = OID: .iso.org.dod.internet.snmpV2.snmpM
odules.snmpMIB
system.sysORTable.sysOREntry.sysORID.3 = OID: tcpMIB
system.sysORTable.sysOREntry.sysORID.4 = OID: ip
system.sysORTable.sysOREntry.sysORID.5 = OID: udpMIB
…以下略…


snmpwalkコマンドやsnmpgetコマンドに“-On”オプションを指定して実行すると,OIDを英文字の形ではなく数字で表示することもできる。

PREV 10/36 NEXT