PRTGで「プライベートMIB(ベンダーMIB)」を監視する ~ ヤマハSWX2310のMIBファイルを例に解説 ~

この記事では、ネットワーク監視ソフトウェア「PRTG Network Monitor」(以下、PRTG)で、プライベートMIB(ベンダーMIB)を利用してSNMP監視を行う方法を解説します。
例としてヤマハ株式会社のL2スイッチ「SWX2310」のMIBファイルを使用しますが、基本的な手順は他ベンダーのMIBファイルでも同様です。

文:ジュピターテクノロジー やすだ
※本記事に掲載されている商品名・サービス名などは、各社の商標または登録商標です。

PRTGのセンサーとプライベートMIB

PRTGのセンサー(監視テンプレート)

PRTGはセンサー(監視テンプレート)を用いて監視を行います。あらかじめ多数のセンサーが用意されており、対象機器に適したセンサーを追加するだけで監視を開始できます。
例えば、Cisco機器では以下のようなセンサーが利用できます。

  • SNMP トラフィックセンサー:ポートごとのトラフィック量を監視
  • SNMP システムアップタイムセンサー:機器の連続稼働時間を監視
  • SNMP Cisco システムの正常性センサー:CPU、メモリ、電源、温度などを監視

このうち前者2つは標準MIBを利用したセンサーで、ほぼすべてのベンダーのSNMP対応機器を監視できます。
一方、後者はCiscoのプライベートMIBを利用したCisco機器専用のセンサーです。

このように、プライベートMIBを利用する監視項目でも、PRTGに専用センサーが用意されている場合は、そのセンサーを利用できます。

プライベートMIBからカスタムセンサーを作成できる

ただし、すべてのベンダー向けに専用センサーが用意されているわけではありません。
そのような場合でも、ベンダーが提供するMIBファイルがあれば、カスタムセンサーを作成して監視できます。
今回はヤマハのL2スイッチ「SWX2310」のMIBファイルを例に、カスタムセンサーを作成する手順を紹介します。
本記事の手順は、他のベンダーが提供するMIBファイルでもほぼ同様に利用できます。

MIBファイルからカスタムセンサーを作成

PRTGでは、プライベートMIBを監視するカスタムセンサーを作成する方法がいくつかありますが、ここではMIBファイルをインポートして作成する方法を紹介します。
インポートすることで、MIBファイル内のOIDやルックアップ定義をPRTGで利用できるようになります。

MIBファイルの入手

最初に、ベンダーからMIBファイルを入手します。ヤマハのプライベートMIBはヤマハのウェブサイトから入手できます。
ベンダーによって入手方法は異なります。各ベンダーにお問合せください。

プライベートMIBの内容を確認

プライベートMIBの内容を確認し、監視したい項目のMIB名やOIDを確認します。
ここでは、メモリ使用率、CPU使用率、ループ検出を例に説明します。
ヤマハSWX2310はMIBリファレンスが用意されており、ヤマハのウェブサイトからサポートするMIBを確認できます。

例えば、メモリ、CPUの各使用率は次のMIBとOIDで監視できます。

yamahaSWHardwareグループ
・yshMemoryUtil 1.3.6.1.4.1.1182.3.1.4 R/O Gauge (0..100) メモリ使用率
・yshCpuUtil5sec 1.3.6.1.4.1.1182.3.1.5 R/O Gauge (0..100) CPU使用率(5秒間平均)
・yshCpuUtil1min 1.3.6.1.4.1.1182.3.1.6 R/O Gauge (0..100) CPU使用率(1分間平均)
・yshCpuUtil5min 1.3.6.1.4.1.1182.3.1.7 R/O Gauge (0..100) CPU使用率(5分間平均)

また、ヤマハ独自のループ検出機能について、次のMIB・OIDと値の定義で監視できます。

yamahaSWLoopDetectグループ
 ysldPortTable 1.3.6.1.4.1.1182.3.11.8 N/A 各ポートのループ検出情報のテーブル
  ysldPortStatus 1.3.6.1.4.1.1182.3.11.8.1.4 R/O INTEGER ループ検出の状態
  ・disabled(1) : ループ検出機能が無効
  ・normal(2) : ループを検出していない
  ・detected(3) : ループを検出している
  ・blocked(4) : ループを検出し、ポートがBlocking状態になっている
  ・shutdown(5) : ループを検出し、ポートがShutdown状態になっている

監視したいMIBやOIDが確認できたら、次はMIBファイルをPRTGで利用できる形式に変換します。

「Paessler MIB Importer」でMIBファイルをインポート

MIBファイルをインポートするために、PRTG開発元のフリーツール「Paessler MIB Importer」を使用します。
「Paessler MIB Importer」で、MIBファイルをPRTGで利用できる「.oidlib」形式へ変換します。
「Paessler MIB Importer」はMIBファイルのビューワーとしても利用できます。

「Paessler MIB Importer」のダウンロードとインストール

Paesslerのウェブサイトからインストーラーをダウンロードできます。ダウンロードしてインストールしてください。
インストール先は、PRTG がインストールされたPCでも、他のPCでも構いません。

MIBファイルを読み込む

「Paessler MIB Importer」を起動し、MIBファイルを読み込みます。
「File」メニューの「Import MIB File…」からMIBファイルを選択、または、MIBファイルをドラッグ&ドロップします。
※複数のファイルを一度に読み込むことができます。

MIB Importer>File>Import MIB Files…
ドラッグ&ドロップでも読み込みできる

読み込みが完了すると、「Import Log」ダイアログが開き、PRTGで利用できるOIDの数が表示されます。
ポーリングで監視できるOIDのみを読み込むため、SNMP TrapのOIDは読み込まれません。
「Close」でダイアログを閉じます。

読み込めたOIDの数が表示される

読み込めない場合

MIBファイルによっては、「Error: Missing import module: <ファイル名>」のメッセージが表示され、読み込みに失敗する場合があります。
これは、対象のMIBファイルが依存している別のMIBファイルが見つからない場合に発生します。

その場合は、エラーメッセージに表示されているMIBファイルを別途入手し、同時に読み込むか、同じフォルダに配置した上で再度読み込みを行ってください。

MIBビューワーとして使用する

読み込んだMIBファイルの内容がツリーで表示されます。

先ほど確認したyamahaSWHardwareグループのyshCpuUtil1minをクリックすると、右側に実際のOIDやDescriptionなどが表示されます。

OIDや説明が表示される


yamahaSWLoopDetectのysldPortStatusを見てみると、「Lookup」欄で、値に対してステータスが定義されていることがわかります。
このOIDでは、値「2」が「normal」、値「3」が「detected」と定義されていることが確認できます。

「Lookup」では値に対する定義を確認できる

監視するMIBを切り出す

PRTGで監視する予定のMIBを切り出して保存します。
切り出さずにすべてをPRTGにインポートすることも可能ですが、OIDが多すぎる場合、センサー追加時にPRTGがハングアップする可能性があります。
ここでは監視対象OIDを含む「YAMAHA-SW-HARDWARE」と「YAMAHA-SW-LOOP-DETECT」グループで切り出します。

  • 「File」メニュー「Enable Partial Selection」をクリック
  • 切り出したいMIB部分にチェックを入力
  • 画面下部の「Save As…」ボタンをクリック
  • ファイル名を入力し、拡張子.oidlib形式で保存
    センサー追加時に、ファイル名を指定します。わかりやすいファイル名にします。
    ここではファイル名を「YAMAHA_SWX2310.oidlib」として保存します。
File>Enable Partial Selection
切り出すMIBのチェックボックスをチェック

PRTGに「.oidlib」ファイルを配置

「.oidlib」ファイルを、PRTGをインストールしたPC・サーバーの次のパスにコピーします。

C:\Program Files (x86)\PRTG Network Monitor\snmplib

これでインポートが完了しました。

カスタムライブラリセンサーを追加

ここからは、PRTGでセンサーを追加します。監視対象機器ではSNMPが有効になっており、PRTGからSNMPで通信できることを前提とします。
また、PRTGには監視対象機器を「デバイス」として追加済みで、SNMPの資格情報も設定済みとします。
これから準備・設定を行う場合は、次のブログを参考にしてください。
ネットワークアセスメント入門:「PRTG」で帯域幅を見える化
ヤマハのルーター「RTX830」、L2スイッチ「SW2310」をPRTGでかんたん監視|自動検出テンプレートあり

センサー追加

センサーを追加します。

  • センサーを追加するデバイスの「センサー追加」をクリック
  • センサー追加ウィザードで検索欄に「ライブラリ」と入力
  • 「SNMP ライブラリ」センサーをクリック
  • 「ライブラリファイルを選択してください」ダイアログで、.oidlibファイルをクリック
    ここでは「YAMAHA_SWX2310.oidlib」
  • 「OK」をクリック
「センサーを追加」からセンサーを追加
センサー追加ウィザードで検索し、「SNMP ライブラリ」センサーをクリック
使用する.oidlibファイルを選択


しばらくすると、「SNMP ライブラリ固有の設定」が表示されます。

「SNMP ライブラリ固有の設定」が表示される

ここで、センサーで監視するOIDを選択していきます。

「SNMP ライブラリ固有の設定」でOIDを選択

「SNMP ライブラリ固有の設定」画面では、「.oidlib」に含まれるMIBの中で、この機器で監視可能なOIDの一覧が表示されます。
機器が値を持たず、監視できないものは表示されません。
また、SNMPテーブルOIDについてはインデックス値も含めて表示されます。
テーブルOIDとインデックス値についての参考記事:SNMPカスタムテーブルセンサーはどんな監視ができますか?

監視可能なOIDがリストとして、インデックス値も含めて表示

ここで、センサーを作成したいOIDをチェックして「作成」をクリックすると、センサーが作成されます。
具体的に見ていきましょう。

メモリ・CPU使用率監視のセンサーを作成

ここでは、先ほど確認した以下のOIDを選択します。

  • yshMemoryUtil
  • yshCpuUtil5sec
  • yshCpuUtil1min
  • yshCpuUtil5min

※右上の検索バーから検索できます。
チェックして「作成」をクリック

OIDを検索して、チェックボックスをチェック

新しくセンサーが追加されました。

センサーが追加された

センサーをクリックし、「全般」画面を確認すると、選択したOIDがセンサーの各チャネルとして作成されています。
また、センサータイプは「SNMP カスタムアドバンスト」となっています。

選択したOIDが各チャネルとして作成

単位を修正していきます。
「設定」タブをクリックして、設定詳細を確認します。


チャネル#1~#4それぞれの設定が確認できます。
「チャネル #x OID」では、それぞれのチャネルが監視しているOIDを確認できます。
ヤマハのMIBリファレンスによると、このOIDの単位は「%」です。

初期状態では、各チャネルの「チャネル #x 単位」は「Custom」に設定されています。ドロップダウンメニューから「Percent」を選択します。
全てのチャネルの単位を「Percent」に変更し、保存します。

チャネルの単位が「Custom」で表示が「#」
プルダウンメニューで「Percent」に変更
単位が「%」に変更された

これで、メモリ・CPU使用率監視のセンサーを作成できました。
センサー名はMIBの内容を元に自動生成されます。わかりやすいセンサー名に変更するのもよいでしょう。
各チャネルにしきい値(PRTGでは制限値)を設定することもできます。以下の資料をご参照ください。

また、メモリ使用率とCPU使用率を別々のセンサーとして管理したい場合は、それぞれのOIDのみを選択して、2回に分けてセンサーを作成します。

ヤマハ独自のループ検出機能監視のセンサーを作成

次に、先ほど確認した「ysldPortStatus」からセンサーを作成します。
「ysld port status」で検索すると、複数のエントリが表示されます。
各OIDの末尾には「1.1」などのインデックスが追加されていることがわかります。

末尾がインデックスで、複数エントリが表示


ヤマハのMIBリファレンスによると、このOIDはSNMPテーブルOID「ysldPortTable」内の列であり、インデックスを指定する必要があります。末尾の値はポートの番号であることがわかります。
今回は例として全ポートを選択し、「作成」をクリックします。

全てのエントリをチェック

各ポートごとにセンサーが追加されました。

各ポートにセンサーが追加された


「全般」画面を確認するとセンサータイプは「SNMP カスタムテーブル」センサーになっています。
チャネルは「ysldPortStatus」で、値は「normal」となっており、現在ループを検知していないことがわかります。

センサーの「全般」画面


ただし、チャネルのゲージが黒くなっています。これは、「normal(2)」や「detected(3)」などの各値に対して、センサーがどのステータス(アップ、ダウン、警告)として扱うかが設定されていないためです。
このような場合は、ルックアップファイルを調整して、各値に対応するセンサーのステータスを設定します。

ルックアップファイルの調整

ルックアップファイルを調整していきます。センサーの「設定」タブをクリックすると、「テーブル固有の設定」の「チャネル #1 ルックアップ」に「oid.yamaha-sw-loop-detect.ysldport.ysldportstatus」が選択されています。

センサーの「設定」タブ画面


これはセンサー追加時にMIBの内容から自動で作成されたルックアップファイルです。
ここで、各値に対するセンサーのステータスを設定します。
この作業は、ファイルを直接編集する必要があります。
PRTGをインストールしたPCの、次のパスにこのファイルがあります:

C:\Program Files (x86)\PRTG Network Monitor\lookups\custom

※デフォルトのインストール先

「oid.yamaha-sw-loop-detect.ysldport.ysldportstatus.ovl」を探し、メモ帳などのテキストエディタで開きます。
ファイルはXMLで記述されています。

<?xml version="1.0" encoding="UTF-8"?>
  <ValueLookup id="oid.yamaha-sw-loop-detect.ysldport.ysldportstatus" desiredValue="1" undefinedState="Warning" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PaeValueLookup.xsd">
    <Lookups>
      <SingleInt state="None" value="1">
        disabled
      </SingleInt>
      <SingleInt state="None" value="2">
        normal
      </SingleInt>
      <SingleInt state="None" value="3">
        detected
      </SingleInt>
      <SingleInt state="None" value="4">
        blocked
      </SingleInt>
      <SingleInt state="None" value="5">
        shutdown
      </SingleInt>
    </Lookups>
  </ValueLookup>

各値の「state」属性でセンサーのステータスを指定します。
現在はすべて 「None」に設定されています。
指定できるステータスは以下です:

state:PRTGでの扱い、ステータス

  • None:ステータスを変更しない(値のみ表示)
  • OK:アップ(緑)
  • Warning:警告(黄)
  • Error:ダウン(赤)

ここでは次のように変更し、ファイルを上書き保存します。
ステータスの割り当ては、運用に合わせて変更してください。

また、desiredValue(期待される値)を「normal」に相当する「2」に変更します。参考:https://www.paessler.com/manuals/prtg/define_lookups#desiredvalue

<?xml version="1.0" encoding="UTF-8"?>
  <ValueLookup id="oid.yamaha-sw-loop-detect.ysldport.ysldportstatus" desiredValue="2" undefinedState="Warning" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PaeValueLookup.xsd">
    <Lookups>
      <SingleInt state="Warning" value="1">
        disabled
      </SingleInt>
      <SingleInt state="OK" value="2">
        normal
      </SingleInt>
      <SingleInt state="Error" value="3">
        detected
      </SingleInt>
      <SingleInt state="Error" value="4">
        blocked
      </SingleInt>
      <SingleInt state="Error" value="5">
        shutdown
      </SingleInt>
    </Lookups>
  </ValueLookup>

ルックアップファイルの編集をPRTGに反映させます。

  • PRTGウェブGUIの「設定」>「システム管理」>「管理ツール」で「ルックアップとファイルリストの読込み」の「実行」ボタンをクリック
「設定」>「システム管理」>「管理ツール」
「ルックアップとファイルリストの読み込み」を「実行」

これで、ループ検出状態に応じてセンサーのステータスが変化するようになります。

ルックアップが反映されたセンサー
ループを検知したセンサー

今回は自動生成されたルックアップファイルを編集しましたが、ルックアップファイルはユーザーが独自に作成することもできます。
参考:値の解釈(ルックアップ)https://prtg.jtc-i.co.jp/tech-info/kb-translation/1964/

OIDを直接指定してカスタムセンサーを作成する

ここまでは、MIBファイルを利用してカスタムセンサーを作成する方法を紹介しました。
一方で、MIBファイルを使用せず、OIDを直接指定してカスタムセンサーを作成することもできます。例えば、次のような場合に有効です。

  • MIBファイルは入手できないが、OIDの情報はわかっている
  • テーブルOIDの値を確認しながらセンサーを作成したい

「SNMP カスタム」および「SNMP カスタムアドバンスト」センサーでは、センサー追加時にOIDを直接指定できます。
また、「SNMP カスタムテーブル」センサーでは、テーブルOIDの値を確認しながらセンサーを作成できます。
詳細は次の記事を参考にしてください。

SNMPカスタムテーブルセンサーはどんな監視ができますか?

まとめ

本記事では、ヤマハSWX2310のMIBファイルを例に、PRTGでプライベートMIBを利用したSNMP監視を行う方法を紹介しました。MIBファイルを.oidlib形式に変換して取り込み、SNMPライブラリセンサーを作成することで、標準では用意されていない監視項目も監視できます。また、必要に応じてルックアップを調整することで、監視値に応じたステータス表示も行えます。

手順は他ベンダーのMIBファイルでも基本的に同様です。標準センサーでは監視できない項目がある場合は、プライベートMIBを活用してみてください。

こんな記事も読まれています

最新記事

おすすめ記事

  1. 【第1回】EDRをすり抜ける攻撃に備える。暗号化を防ぐ「最後の砦」REP Xの真価とは

  2. 【CheckmkKB】ユーザーテストを自動実行!アプリの体感をそのまま見える化

  3. WinSyslog 使い方ガイド#4 処理の必要がないログを絞り込んで「破棄」する

製品カテゴリー

その他の情報

TOP