VBSでSNMP情報取得

【概要】
VBSを利用して、windows作業端末から、 SNMPエージェントのMIB情報を直接指定して取得します。
なお、windows作業端末側ではSNMPの導入は不要です。
情報取得対象の機器には、SNMPエージェントが導入・設定されている必要があります。

【サンプル】
サンプルは以下になります。
サンプルのOIDは、ホスト名情報を指定しています。

サンプルは最低限の骨組みですので、使用しやすいように処理変更を推奨します。
なお、VBScriptなどにコミュニティ名やパスワード等の重要情報を直書きで入れることは、 セキュリティ上不安がありますのでご考慮ください。

strAgentIP = "XXX.XXX.XXX.XXX" ' エージェントIPアドレス
strSNMPCommunity = "XXXXX" ' エージェントSNMPコミュニティ名
intRetry = 1 ' リトライ回数
intTimeout = 200 ' 応答タイムアウト値(ミリ秒)
strOID = ".1.3.6.1.2.1.1.5.0" ' OID(OIDを変えると取得情報を変えることができる)

set objSNMP = WScript.CreateObject("OlePrn.OleSNMP")
call objSNMP.Open(strAgentIP, strSNMPCommunity, intRetry, intTimeout)

strOIDValue = objSNMP.Get(strOID)

' メッセージを表示
WScript.Echo(strOIDValue)

call objSNMP.Close()
set objSNMP = nothing

【利用方法】
1.サンプルの内容をテキストファイルに貼り付けて保存します。
2.テキストファイルの拡張子「.xtx」を拡張子「.vbs」に変更してVBSファイルにします。
3.VBSファイルを右クリックして、「編集」を選択します。
4.テキストエディタが開くので、以下の変数の値(=の右側)を環境に合わせて編集し、保存します。
 「strAgentIP」
 「strSNMPCommunity」
5.VBSファイルをダブルクリックして実行します。

【備考】
SNMPはマネージャ側(監視サーバなど、管理側)とエージェント側(監視対象のサーバ、ネットワーク機器など)に分かれて構成されます。

SNMPエージェントは監視対象機器の情報を、「MIB(Management Information Base:管理情報ベース)」と呼ばれる、管理情報を蓄積したデータベースを参照して取得します。
MIBには「標準MIB」と、メーカーや機器固有のものなどが存在します。
標準MIB情報はインターネットで検索するとすぐ出てきますが、メーカーや機器固有のものはメーカーに確認する必要があります。

MIBに格納されている情報の1つ1つは「オブジェクト(Object)」と呼ばれます。
オブジェクトは情報の要素によってツリー構造で管理され、それぞれに「オブジェクトID(OID)」という識別子が割り振られています。
OIDはピリオドで区切られた数字で表現されます。

たとえば、標準MIBのうち「MIB-2」はOID「1.3.6.1.2.1」になります。

<MIBの例>

iso(1)
  L org(3)
   L dod(6)
     L internet(1)
       L private(4)
       L mgmt(2)
         L mib2(1)
           L system(1)

MIBに含まれているオブジェクトのOIDとその意味は「MIBファイル」というテキストファイルに記述されています。
監視対象機器からSNMPを使ってどのような情報を収集できるかは、その監視対象機器がサポートしているMIBファイルを確認する必要があります。
このファイルは監視ソフトウェアの設定などでも使用することがあります。

情報の取得はSNMPマネージャ側からIPとSNMPコミュニティ名指定で取得できます。
SNMPコミュニティ名はセキュリティ上重要になるのでデフォルト値を必ず変更してご利用ください。
また、エージェント側での接続制限等の設定も行います。
なお、コミュニティ名や、接続制限等の設定は、エージェント側で行います。