SNMP (Simple Network Management Protocol) は、ネットワーク上に存在する機器を管理・制御するためのプロトコルです。ネットワーク上に増え続ける機器を1つ1つ管理や監視し続けることはとても大変です。SNMPを利用すれば機器をまとめて効率よく管理することが可能になります。
SNMP 概要
SNMP は OSI 参照モデルのアプリケーション層に相当します。TCP/IP ネットワーク上につながる機器の情報を管理したり、状態を監視したりするために使用されるプロトコルです。
SNMP は管理する側のマネージャーと管理される側のエージェント間で動作します。一般的に、SNMP マネージャーとしての役目を担うために、監視ソフトウェアがインストールされた監視サーバーが用意されます。
SNMP マネージャーと SNMP エージェント
SNMP マネージャーと監視サーバー
SNMP マネージャーは、SNMP エージェントがもつデータベースの情報を取得し管理することで、状態を監視します。
SNMP プロトコルは、監視トラフィックの処理にかかる負荷を考慮して、トランスポート層では UDP を使用します。また、実際に使用する場合は、監視対象機器の負荷にならないように定期的な情報取得の間隔も検討する必要があります。
- 監視サーバー
一般的にネットワークを管理・制御する SNMP マネージャーには、専用の監視ソフトウェアをインストールして監視サーバとしてネットワーク上に設置します。
監視サーバーは、監視対象機器に向けて定期的な情報収集をおこないます。これをポーリングと呼び、定期的なポーリングを行うことで監視対象機器の変化やエラーに気づくことができます。
監視ソフトウェアは、ネットワーク上に多数存在するネットワーク機器やサーバーなどの監視対象機器の状態をビジュアル化したり、必要な情報を自動的に取得してリアルタイムで更新したりと、さまざまな工夫で効率よく管理しやすいように作られています。
SNMP エージェントとMIB
SNMP マネージャーからネットワーク経由で管理される機器です。SNMP エージェントは機器の情報を MIB と呼ばれる自身のデータベース上に格納しています。この MIB に格納されたデータを SNMP マネージャーが参照します。
- MIB(Management Information Base)
監視対象機器が自身の設定やステータスなどの状態を格納するデーターベースです。機器の起動時間などのシステムに関わる情報やインターフェイスの状態、ネットワーク設定関連の情報などさまざまな情報が格納されています。
MIB はツリー構造に用意された格納場所に状態や設定を表す値を格納しています。どこに格納された値なのかを一意に識別するために、格納場所にオブジェクト ID が割り当てられています。SNMP マネージャは参照したい値を、オブジェクト ID で指定して取得します。
SNMPの仕組み
SNMP では、大きく分けて3種類の動作を行うことで、機器を管理・監視する仕組みが成り立っています。その際、SNMP マネージャーとエージェント間では、主に以下のメッセージを使用しています。
- GetRequest
- GetNextRequest
- GetResponse
- SetRequest
- Trap
値の要求 (GetRequest)
SNMP マネージャーは、SNMP エージェントに MIB の値を「GetRequest」で要求します。また、複数の値が存在する場合につづけて値を取得するために「GetNextRequest」が使われます。SNMP エージェントは「GetResponse」で応答を返します。
値の変更要求 (SetRequest)
SNMP マネージャーは、変更したい MIB の値を適応するように SNMP エージェントに「SetRequest」で要求します。SNMP エージェントは「GetResponse」で応答を返します。
イベント発生の報告 (Trap)
Trap(トラップ) は、SNMP エージェントから送られるメッセージです。あらかじめ、SNMP エージェント側で、報告が必要なイベントの種類や閾値を設定しておくことで、そのイベントが発生した際に即座に SNMP マネージャーに報告するメッセージです。
イベントの種類には、機器の温度上昇や再起動、リンクのダウンなどいろいろなパターンがあります。
参考リンク
SNMP の概要と基本設定 – Cisco ネットワーク機器
コメント