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

SNMPにおける情報取得の基礎

 snmpdが正しく動作したならば,そのLinuxマシンがSNMPエージェントとして動作したことになる。つまり,別のホストからSNMPマネージャを使って,snmpdを動作させたLinuxマシンの情報を取得するというネットワークモニタリングが可能となる。

 つまり,あとは何らかのSNMPマネージャをインストールし,その設定方法や利用方法を理解すればよいわけだ。

 しかしSNMPマネージャを使って情報を監視するためには,SNMPエージェントが保持する管理情報領域にどのようなデータがどのような構造で格納されているのかを知っていなければならない。

 そこで本格的なSNMPマネージャをインストールするまえに,ucd-snmpに付属するSNMPマネージャとして動作する簡単なコマンドを使いながら,管理情報領域の構造を説明する。

OIDツリー
 管理情報領域内では,各情報をオブジェクトとして名前を付けて管理している。そしてそのそれぞれのオブジェクトにOID(Object IDentifier:オブジェクト識別子)というの名前を付けて区別する。OIDは,“1.3.6.1.2.1.1”といったように,ピリオドで区切られた数字として表現され,ピリオドで区切られる各数値は,階層構造をとるツリー構造となっている(Fig.3)。
Fig.3 OIDツリー
fig_03

 どのOIDが割り当てられたオブジェクトにどのような情報が格納されているのかは,あらかじめ定められている。たとえば,“1.3.6.1.2.1.1.4”は管理者のメールアドレス,“1.3.6.1.2.1.1.6”はシステムの場所情報を示すといった具合だ。

 SNMPは,SNMPマネージャからSNMPエージェントに対し,OIDを送ると,そのOIDが割り当てられたオブジェクトに格納されている値が返されるという単純な仕組みで構成される(Fig.4

Fig.4 SNMPによる情報のやりとり
fig_04

 すなわち,SNMPを使う上ではどのようなOIDをもつオブジェクトに,どのような情報が格納されているのかを知ることが重要となる。それが分かれば,SNMPエージェントを通じて機器のさまざまな情報を取得できるのだ。

 逆にいえば,どのOIDをもつオブジェクトにどのような情報が格納されているのかを知らなければ,SNMPは何の意味もなさない。たとえば,SNMPを使ってネットワークのトラフィック情報を取得したい場合,ネットワークのトラフィック情報がどのOIDが割り当てられたオブジェクトに格納されているのかを知らなければ,いくらSNMPエージェントとSNMPマネージャが正しく動作していたとしても,トラフィック情報を取得できない。

 ucd-snmpが対応する管理領域情報は,次の4種類だ。

  1. RFC1213で定義されるmib-2サブツリー
  2. ucd-snmpが独自に定義するucdavisサブツリー
  3. RFC1514で定義されるHost Resourceの初期化情報(内容は空)
  4. RFC2571〜RFC2976で定義されるSNMPv3のMIB

 これらの管理領域情報は,数がかなり多く,到底ここで紹介することはできない。そこで本稿では,よく使われる1.と2.のみを説明する。

PREV 9/36 NEXT