SNMPおよびSNMPの監視について
IT Laiba Siddiquiネットワークデバイスの管理と監視は、組織のスムーズな運用に欠かせません。その目的を果たすため、多くの組織ではSNMP (Simple Network Management Protocol)を使用しています。
SNMPは、ネットワーク管理者が対象デバイスのステータスやパフォーマンスに関する情報を収集し、デバイスを設定するための標準的なインターネットプロトコルです。
この記事では、SNMP監視について詳しく解説し、各種のバージョンやコンポーネントを見ていきます。
SNMP監視とは?
SNMPはSimple Network Management Protocolの略で、ルーター、スイッチ、サーバー、プリンターなどのネットワークデバイスの管理と監視を目的とした標準的なインターネットプロトコルです。
ネットワーク管理者はSNMPを使用することで、対象デバイスのステータスとパフォーマンスに関する情報を収集し、デバイスの設定と制御をリモートで行えます。このプロトコルは、管理システムと管理対象デバイスという考え方に基づいて動作します。
管理システム(ネットワーク管理ソフトウェアやツール)は、SNMPを使用して管理対象デバイスにリクエストを送信し、情報を取得したり特定の操作を実行したりします。
SNMP監視の仕組み
SNMP監視は、ネットワークデバイスの情報を収集および管理するいくつかのコンポーネントで構成されています。各コンポーネントがどのように連携するかを以下にまとめました。
- SNMPマネージャーは、SNMP対応のデバイスからデータを収集する中央管理システムです。このシステムは、管理対象デバイス上のSNMPエージェントにリクエストを送信することで監視を制御します。マネージャーは取得したデータを処理し、レポートの作成、アラートのトリガー、その他の管理タスクを実行します。
- エージェントは、ネットワークデバイス上で実行されているソフトウェアで、デバイスのステータスやパフォーマンスに関するデータを収集して提供する役割を担います。エージェントはマネージャーから送信されたSNMPリクエストに応答したり、自発的なSNMPトラップを送信したりして、マネージャーにデバイスの状態を通知します。
- 管理対象デバイスとは、監視を受けているネットワーク装置を指します。たとえば、ルーター、スイッチ、サーバー、プリンター、その他のSNMP対応デバイスです。これらのデバイスにはSNMPエージェントがインストールされているので、SNMPマネージャーからのリクエストに応答できます。
- Management Information Base (MIB)とは、SNMPデバイスを監視および管理するために利用できる情報を整理する階層型データベースです。MIBは、管理対象デバイスの特定の属性やパラメーターを表す一連のオブジェクトを定義します。それぞれのオブジェクトはOID (オブジェクト識別子)で特定されます。OIDは、MIB階層の中のオブジェクトアドレスを表す一連の数値です。
- OID (オブジェクト識別子)は、MIB内の各オブジェクトを特定するための数値から構成される識別子です。OIDは、ファイルシステムのパスに似た階層構造に準じていて、OID内の各数字がMIBツリー内の分岐を表しています。
SNMP監視のコマンド
SNMPコマンドを使用すると、SNMP監視でのデータの収集、構成、イベント通知の受信が行いやすくなります。コマンドを使用することで、SNMPマネージャーが管理対象デバイス上のSNMPエージェントとやり取りして、ネットワーク管理に必要な情報を収集できます。
よく使われるSNMPコマンドをいくつか紹介します。
Get
Getは、管理対象デバイスから特定のSNMPオブジェクトまたは属性の値を取得します。SNMPマネージャーによって開始され、SNMPエージェントに送信されます。コマンドには取得したいオブジェクトのOID (オブジェクト識別子)を指定します。エージェントは対象オブジェクトの値をレスポンスとして返します。
GetNext
GetNextは、MIB階層内で次に位置するオブジェクトの値を取得します。マネージャーは現在位置にあるオブジェクトのOIDを指定し、エージェントはその位置の次にあるオブジェクトのOIDと値を返します。
Set
Setは、管理対象デバイスのSNMPオブジェクトの値を設定します。SNMPマネージャーはこのコマンドを使用して、デバイスの設定やパラメーターを変更できます。
GetBulk
GetBulkは、1回のリクエストで管理対象デバイスから大規模なデータを取得します。さまざまなオブジェクトを取得する際は、GetやGetNextのコマンドを複数回にわたり実行するよりも、GetBulkを使用するのが効率的です。
Trap
Trapは、SNMPエージェントの方からSNMPマネージャーに送信される自発的な通知です。エージェントはトラップメッセージをマネージャーに送信します。このメッセージには、イベントと重大度の情報が含まれています。リンク障害、高いCPU使用率、システムの再起動など、特定のイベントや条件によってトラップをトリガーできます。
SNMP v1、v2、v3:バージョンの違い
SNMPは、時間とともに進化してきました。バージョンを重ねるごとに、セキュリティ、機能性、パフォーマンスが強化されています。以下に、SNMPのバージョン1、2、3の概要を説明します。
SNMP v1
SNMPバージョン1は、SNMPの最初のバージョンとして、ごく基本的な機能を備えています。コミュニティベースのセキュリティ認証モデルを使用していて、コミュニティ文字列と呼ばれるパスワードのような共通の資格情報を使用します。SNMP v1のセキュリティ機能は限定的で、暗号化をサポートしていません。
SNMP v2c
SNMPバージョン2では、SNMP v1を強化して、機能性を改善しています。大規模なデータを取得するSNMP GetBulk操作や、通知を確実に届けるためのSNMP Informメッセージなど、いくつかの機能が追加されました。
ただし、SNMP v2cは引き続きコミュニティ文字列を使用して認証を行っているので、セキュリティリスクに対して脆弱です。加えて、SNMPメッセージの完全性と秘匿性を守る強力なセキュリティ機構を備えていません。
SNMP v3
SNMPバージョン3は、SNMPの最新バージョンです。以前のバージョンで懸念されていたセキュリティの問題に対応しており、強化されたセキュリティ機能が利用できます。セキュリティが最も強固なバージョンで、セキュリティレベルやセキュリティモデルといった概念も導入されました。
セキュリティモデル:SNMP v3では、以下の3種類のセキュリティモデルを定義しています。
- User-based Security Model (USM):USMは、HMAC (Hash-based Message Authentication Code)、MD5、SHA (Secure Hash Algorithm)などの仕組みを使用してSNMPメッセージの認証と暗号化を行います。
- View-based Access Control Model (VACM):VACMは、MIBビューに基づいてアクセス権限のポリシーとルールを定義することで、きめ細かいアクセス制御を可能にします。
- Transport Security Model (TSM):TSMは、Transport Layer Security (TLS)などのトランスポート層のセキュリティプロトコルをサポートすることで、安全な通信を確保します。
セキュリティレベル:SNMP v3はさらに、以下の3つのセキュリティレベルを定義します。
- noAuthNoPriv:認証や暗号化を提供しません。
- authNoPriv:HMACを使用してメッセージ認証を行います。
- authPriv:SNMPメッセージの認証と暗号化の両方を行います。
SNMP v3では、強力な認証、メッセージの完全性と暗号化など、セキュリティ面が強化されています。これらの機能強化があるので、安全なSNMPの監視と管理に適したバージョンとして推奨されます。
重要な点として、SNMP v3では以前のバージョンとの下位互換性がありません。ただし、多くのネットワークデバイスと監視システムが、複数のSNMPバージョンをサポートしているので、柔軟に導入でき、レガシーシステムとの互換性も確保されています。
包括的なネットワークデバイス監視のための主要なSNMPメトリクス
ネットワークデバイスのパフォーマンス、健全性、利用率など、SNMPメトリクスから重要なインサイトが得られます。標準的なSNMPメトリクスには、次のようなものがあります。
インターフェイスメトリクス
- インターフェイスのステータス:インターフェイスが稼動しているかダウンしているかを示します。
- インターフェイスのトラフィック:バイト、パケット、エラーなどの観点から、インターフェイスの受信トラフィックと送信トラフィックを測定します。
- インターフェイスの帯域幅:インターフェイスの最大容量やスピードを表します。
システムメトリクス
- CPU使用率:CPUの使用率やデバイスへの負荷を測定します。
- メモリー使用率:デバイスによって使用されているメモリー量を示します。
- ディスク使用率:ディスクストレージの使用率に関する情報です。
ネットワークメトリクス
- ネットワークレイテンシー:デバイス間でデータパケットが往復する所要時間です。
- ネットワークエラー:パケットの破棄や衝突など、ネットワークエラーの件数をカウントします。
- ネットワークスループット:一定期間内にネットワーク上で伝送されるデータを表します。
デバイスメトリクス
- デバイスの温度:デバイスの温度を測定します。
- 電源のステータス:正常または異常など、電源のステータスを示します。
- デバイスのアップタイム:デバイスが最後に再起動されてからの時間を表します。
アプリケーション固有のメトリクス
- DNSクエリー:DNSサーバーによって処理されたDNSクエリーの数をカウントします。
- HTTPレスポンスの時間:WebサーバーがHTTPリクエストに応答する時間を測定します。
- データベースの接続数:アクティブなデータベース接続の数をカウントします。
どのメトリクスが利用できるかは、デバイスや実装されているSNMPによって異なります。ネットワーク管理者は監視の要件に応じて適切なメトリクスを選択でき、それらのメトリクスを通じてネットワークインフラの全体的な健全性についてのインサイトが得られます。
(関連記事:NOCとSOCの違いについて)
SNMP監視でよく使われるツール
SNMP監視ツールはさまざまな種類が入手可能であり、ネットワーク管理者はこれらを使ってSNMP対応デバイスの監視と管理に活用できます。よく使われるツールをいくつか紹介します。
SolarWinds Network Performance Monitor
SolarWinds NPMは、SNMPに対応したネットワーク監視の総合的なソリューションです。SNMPデバイスをリアルタイムで監視し、アラートを送信し、レポートを作成する機能が用意されています。デバイス検出、パフォーマンス監視、帯域幅使用率の分析、アラートの自動化にも対応しています。
Paessler PRTGネットワークモニター
PRTGは、「センサー」を使用して監視をするという独自のアプローチで、ほかのツールの中でも際立っています。PRTGの監視機能は、こうしたセンサーによって支えられています。
各センサーは、監視すべき特定の要素に対応しています。たとえば、あるセンサーはサーバーのCPU負荷を監視し、別のセンサーは利用可能なディスク容量をチェックする、といった具合です。
PRTGの特長は、さまざまなSNMPセンサーが事前に設定されていることです。これらのセンサーは、HP、Synology、Dell、Ciscoなど、メーカー各社のデバイスに対応しています。つまり、これらのメーカー製デバイスを追加の設定なしで簡単に監視できるということです。
ManageEngine OpManager
ManageEngine OpManagerも、SNMPの管理に最適なツールです。さまざまな目標レベルを設定できるので、ネットワークやデバイス全体の健全性を確保できます。さらにOpManagerでは、ネットワークのマッピング、表示する情報のカスタマイズなど、追加の機能が利用できます。
Spiceworks Network Monitor
Spiceworks Network Monitorは、無料で使用できるSNMP監視ツールです。ほかのソフトウェアパッケージとは異なり、このツールはSNMPの監視に特化しています。すぐにセットアップできる、使いやすいダッシュボードを備えています。
SNMP対応のデバイスをウィジェットとしてダッシュボードに追加できるので、重要なデバイスデータを常に可視化できます。アラート機能もシンプルで使いやすく、グローバルとデバイスごとに基本的なしきい値を設定して通知を送信できます。
Observium
Observiumは、メンテナンスの少ないSNMP監視ツールで、以下の3つのバージョンがあります。
- プロフェッショナル
- エンタープライズ
- コミュニティ
どのバージョンを選んでも、Observiumは使いやすいツールです。デバイスの自動検出機能を使用するか、手動で選択して、監視対象のデバイスを追加できます。デバイスを追加した後は、概要ページに移動して各デバイスのステータスが確認できます。
SNMP監視のまとめ
SNMP監視は、ネットワーク管理の高機能なソリューションです。管理者に必要なツールとインサイトを備えているので、ネットワークインフラの効率的な運用を確保できます。SNMP監視と適切なツールを活用することで、組織のネットワークを監視および管理し、問題に対処できます。
関連記事

ログ管理とは?目的やメリット・デメリットから考える“必要性”

Splunkを活用したVMwareインフラストラクチャの監視とトラブルシューティング
