Windowsマシンが正常に動作しているかを監視する場合、いろいろな監視方法がありますが、その一つにSNMPで監視する方法があります。
そこでここでは、Windows 10をSNMPで監視するための基本的な設定方法を紹介します。

目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
Windows 10 Pro 64bit | 21H1 |
SNMPエージェントのインストール
Windows 10をSNMPで監視するためには、まずSNMPエージェント機能をインストールします。
手順は、次のとおりです。
まず、Windowsの「設定」から「アプリ」を選択します。
「アプリ」画面が表示されるので「アプリと機能」にある「オプション機能」 をクリックします。
「オプション機能」画面が表示されるので「機能の追加」をクリックします。
「オプション機能を追加する」画面が表示されるので、一覧から「簡易ネットワーク管理プロトコル (SNMP)」にチェックを入れて「インストール」をクリックします。
以上で、SNMPエージェント機能がインストールされます。
Windows 10のSNMPエージェント機能は、v1とv2cに対応していますが、v3には対応していません。(SNMPトラップはv1で送信されます。)
SNMPエージェントの設定
SNMPエージェント機能をインストールしたら、つぎにSNMPエージェントの設定を行います。
スタートメニューのプログラム一覧から「Windows管理ツール」>「サービス」をクリックします。
「サービス」画面が表示されるので、サービス一覧から「SNMPサービス」をダブルクリックします。
「SNMPサービス」のプロパティ画面が表示されるので「セキュリティ」タブで「受け付けるコミュニティ名」の「追加」をクリックし、コミュニティ名とコミュニティの権利を設定します。
ここでは例として、コミュニティ名に「public」を追加し、コミュニティの権利は「読み取りのみ」に設定しています。
つぎに「すべてのホストからSNMPパケットを受け付ける」または「これらのホストからSNMPパケットを受け付ける」を選択します。
SNMPパケットを特定のホストからしか受け付けたくないときは「これらのホストからSNMPパケットを受け付ける」を選択し「追加」をクリックして、SNMPマネージャのホスト名やIPアドレスを指定します。
設定が完了したら「OK」をクリックします。
SNMPトラップを設定するときは
SNMPトラップを設定するときは、同じ「SNMPサービス」のプロパティ画面で「トラップ」タブを選択し、コミュニティ名を入力してから「一覧に追加」をクリックします。
ここでは例として、コミュニティ名に「public」を追加しています。
つぎに「トラップ送信先」で「追加」をクリックし、トラップ送信先のSNMPマネージャのホスト名やIPアドレスを追加します。
ここでは例として、トラップ送信先としてIPアドレスで「192.168.10.100」を追加しています。
設定が完了したら「OK」をクリックします。
設定の適用
上で行った設定を反映させるために「サービス」画面で「SNMPサービス」を再起動します。
以上で、SNMPエージェントの設定完了です。
ファイアウォール設定の確認
通常は、SNMPエージェント機能をインストールすると「Windows Defender ファイアウォール」の設定に、受信の規則が自動的に追加されて通信できるようになりますが、ファイアウォール機能を搭載したサードパーティーのセキュリティ対策ソフトをインストールしている環境では、UDP161番ポートの受信を許可する必要があるでしょう。
動作確認
最後に、動作確認として以下の2点を確認します。
- SNMPマネージャからSNMPエージェントの情報を取得できるか
- SNMPトラップを送信でき、SNMPマネージャで受信できるか
ここでは、別のWindows 10マシン(IPアドレス:192.168.10.100)に「Net-SNMP」をインストールして動作確認を行いますが、SNMPマネージャ環境があるなら、そちらで設定して動作確認しましょう。
SNMPマネージャでSNMPエージェントの情報を取得
SNMPエージェントの情報を取得できるか確認するには、動作確認用マシンでコマンドプロンプトを起動して以下のコマンドを実行します。
c:\usr\bin> snmpwalk -v 2c -c public 192.168.xxx.xxx .1.3.6.1.2.1.25.3.3.1.2
コマンドの192.168.xxx.xxx の部分には、SNMPエージェントを設定をしたマシンのIPアドレスを指定し「-c」オプションには設定したコミュニティ名を指定し、末尾にOID(取得したい情報)を指定します。
上のコマンドではOIDとして論理CPUの使用率を指定しており、SNMPエージェントから情報が取得できていれば、以下のように論理CPUごとの使用率が表示されます。
SNMPトラップを送信しSNMPマネージャで受信する
SNMPトラップを送信でき、SNMPマネージャで受信できるかを確認するときは、SNMPエージェント設定を行ったマシンで、「evntwin」ツールを使い特定のイベントログが発生したときに、SNMPトラップを発報するよう設定します。
手順は、次のとおりです。
SNMPエージェントを設定したマシンで、管理者権限でコマンドプロンプトを起動して、以下のコマンドを実行し、テスト用のイベントを発生させておきます。
> EVENTCREATE /ID 999 /L system /SO test /T ERROR /D "This is Test Event."
コマンド実行後「成功:・・・」と表示されていればOKです。
次に、以下のコマンドを実行して「イベントトラップトランスレーター」を起動します。
> evntwin
「イベントトラップトランスレーター」が起動したら、構成の種類で「カスタム」を選択してから「編集」をクリックします。
画面下部にイベントソースとイベントIDを選択する画面が表示されるので、SNMPトラップを発報したいイベントログを選択して「追加」をクリックします。
ここでは例として、先ほど発生させたテストイベント(イベントソースが「test」でイベントIDが「999」)のイベントログを指定しています。
「プロパティ」画面が表示されるので、そのまま「OK」をクリックします。
「トラップに変換するイベント」の一覧に、追加したイベントが表示されていることを確認したら「OK」をクリックして画面を閉じます。
設定を適用するために「サービス」画面で「SNMPサービス」を再起動します。
ここまでの設定ができたら、あらためて管理者権限で「コマンドプロンプト」を起動して、以下のコマンドを実行し、テストイベントを発生させ、動作確認用マシンでトラップを受信できているかを確認します。
> EVENTCREATE /ID 999 /L system /SO test /T ERROR /D "This is Test Event."
ちなみに、Net-SNMPでは、トラップを受信するとsnmptrapd.logに、次のようなログが出力されます。
なお、Net-SNMPでSNMPトラップを受信するには事前設定が必要で、設定方法は以下のサイトが分かりやすいでしょう。
あとがき
ここでは、WindowsマシンをSNMPで監視するための基本的な設定方法を紹介しましたが、Windowsの標準機能だけだと、SNMPで取得できる情報はそれほど多くありません。
そのため、WindowsマシンをSNMPでしっかりと監視する場合は、監視ツールのエージェントソフトウェアや「SNMP Informant」といったサードパーティーのツールを導入して、取得できる情報を拡張する必要があるでしょう。