全1574文字
PR

 SNMP(Simple Network Management Protocol)は、サーバーやネットワーク機器などを監視および制御するためのプロトコルである。ネットワーク機器の多くが対応している。ホスト名や起動からの経過時間、トラフィック量やエラーパケットの数、CPUやメモリーの使用状況といった詳細な情報を取得できる。

 SNMPでは、監視する側のSNMPマネジャーと、監視される側のSNMPエージェントで情報をやりとりする。SNMP対応機器ではSNMPエージェントと呼ぶソフトが稼働している。SNMPマネジャーはネットワーク監視ツールなどが備える。

マネジャーがエージェントに情報を要求
マネジャーがエージェントに情報を要求
[画像のクリックで拡大表示]

 通常は、SNMPマネジャーが送った要求に対してSNMPエージェントが情報を返す。SNMPマネジャーがSNMPエージェントに対して、知りたい情報(管理情報)を指定した要求パケットを送る。SNMPエージェントは要求パケットを受け取ると指定された管理情報を探し、その情報を応答パケットで返す。これが基本的な流れである。

 ただし機器で異常が発生した場合などに備えて、SNMPエージェントからSNMPマネジャーに自発的に情報を送信する仕組みもある。SNMPエージェントは、あらかじめ設定した状態になるとSNMPマネジャーにそのことを通知する。この通知方法をSNMPトラップと呼ぶ。

 「エージェントが再起動した」「ポートがダウンした」「ポートがアップした」といったときに、トラップパケットを送る。SNMPの通常の通信はUDPの161番ポートを使うが、SNMPトラップではUDPの162番ポートを使う。

管理情報はMIBで定義

 SNMPエージェントから取得できる情報、つまりSNMPで管理できる情報は「MIB(Management Information Base)」と呼ばれる仮想的なデータベースで定義されている。

 MIBはツリー構造になっている。それぞれの情報(オブジェクト)には、1つの数字(ID)が割り当てられている。MIBのツリー構造の頂点であるルートから、該当オブジェクトにたどり着くまでに通るオブジェクトの数字を並べたものが「オブジェクトID(OID)」になる。

 OIDを使えば、該当オブジェクトを一意に指定できる。例えば監視対象のホスト名の情報「sysName」のOIDは「.1.3.6.1.2.1.1.5」である。

 なおネットワーク監視ツールによっては、SNMPエージェントだけではなく専用のエージェントも利用できる。エージェントは独立したソフトウエアなので様々な機能を実装できる。このため、SNMPを使う場合よりも詳細な情報を収集できる。

 ただし、監視対象にエージェントをインストールする必要がある。また、基本的にはWindowsやUNIX系OSなどの汎用OSでなければ動作しないので、ネットワーク機器には導入できない。