SNMPを使ってネットワーク機器を監視する際、必ず登場するキーワードが「MIB」と「OID」です。
この2つはSNMPの情報管理の根幹をなす概念であり、どの情報をどう取得するかを定義する仕組みです。
MIBやOIDを正しく理解することで、Zabbixなどの監視ツールとの連携がスムーズになり、より詳細なネットワーク監視が実現できます。
本記事では、MIBとOIDの意味・体系・データ取得方法・Zabbix連携のポイントまでわかりやすく解説していきます。
MIBとOIDとは?SNMPの情報管理を支える基盤
それではまず、MIBとOIDの基本的な意味から解説していきます。
MIBとは「Management Information Base」の略称であり、SNMPで管理する情報を定義したデータベースのことです。
ネットワーク機器が持つCPU使用率・メモリ使用量・インターフェース状態などの情報が、MIBというデータ構造に格納されています。
MIBはSNMPの「情報辞書」とも呼ばれます。どの機器のどの情報を取得できるかが定義されており、管理者はMIBを参照することで必要なデータを正確に指定して取得することが可能です。OIDはその辞書の各単語に対応する「番号ラベル」の役割を果たします。
OIDとは何か?番号体系の仕組み
OIDとは「Object Identifier」の略称であり、MIB内の各情報項目を一意に識別するための番号です。
OIDはドットで区切られた数字の列で表現され、例えば「1.3.6.1.2.1.1.1.0」のような形式になります。
この番号はツリー構造(階層構造)になっており、大分類から小分類へと掘り下がる形で情報が整理されています。
OIDを指定することで、機器の特定の情報だけをピンポイントで取得することが可能になるでしょう。
MIBの種類:標準MIBと拡張MIB
MIBには大きく分けて2種類あります。
| 種類 | 内容 | 例 |
|---|---|---|
| 標準MIB(RFC MIB) | IETFが標準化した共通MIB | MIB-II(RFC 1213) |
| 拡張MIB(プライベートMIB) | メーカー独自に定義したMIB | Cisco独自MIB、HP独自MIBなど |
標準MIBは機器の種類を問わず共通して利用でき、基本的なシステム情報やネットワーク情報を取得できます。
拡張MIBはメーカー固有の詳細情報を取得したい場合に使用しますが、事前にMIBファイルを入手してマネージャ側に登録する必要があります。
OIDの体系と主要な情報の場所
続いては、OIDの体系的な仕組みをより詳しく確認していきます。
OIDのツリー構造を理解すると、どのOIDがどの情報に対応しているかを読み解けるようになります。
OIDツリーの基本構造
OIDのツリーはISO・ITU-Tによって管理されており、最上位から以下のように階層が分かれています。
1(iso)
└─ 3(identified-organization)
└─ 6(dod)
└─ 1(internet)
└─ 2(mgmt)
└─ 1(mib-2)
└─ 1(system)/ 2(interfaces)/ …
「1.3.6.1.2.1」という部分はMIB-IIの共通ルートであり、多くの標準情報がこの配下に格納されています。
よく使われる主要OIDの一覧
| OID | 情報の内容 |
|---|---|
| 1.3.6.1.2.1.1.1.0 | システムの説明(sysDescr) |
| 1.3.6.1.2.1.1.3.0 | 稼働時間(sysUpTime) |
| 1.3.6.1.2.1.1.5.0 | 機器名(sysName) |
| 1.3.6.1.2.1.2.2.1.8 | インターフェースの動作状態(ifOperStatus) |
| 1.3.6.1.2.1.2.2.1.10 | 受信バイト数(ifInOctets) |
| 1.3.6.1.2.1.2.2.1.16 | 送信バイト数(ifOutOctets) |
これらのOIDを使えば、機器の基本情報やネットワークトラフィックのデータを取得することができます。
MIBファイルの入手と読み方
拡張MIBを使用する場合は、メーカーのサポートサイトなどからMIBファイル(.mibまたは.txtファイル)を入手します。
MIBファイルはASN.1(Abstract Syntax Notation One)という記述形式で書かれており、専用ツールやMIBブラウザで視覚的に閲覧することが可能です。
MIBファイルを読み解くことで、機器固有のOIDとその意味を把握できます。
SNMPでのデータ取得方法とコマンド例
続いては、実際にSNMPでMIBデータを取得する方法を確認していきます。
LinuxやWindowsのコマンドラインから直接SNMPでデータを取得することも可能です。
snmpgetコマンドの使い方
Net-SNMPツールセットに含まれる「snmpget」コマンドを使うと、特定のOIDの値を取得できます。
コマンド例(v2cで機器名を取得):
snmpget -v 2c -c public 192.168.1.1 1.3.6.1.2.1.1.5.0
出力例:
SNMPv2-MIB::sysName.0 = STRING: Router01
「-v 2c」でバージョン指定、「-c public」でコミュニティ名を指定します。
取得したい情報のOIDを末尾に指定するだけで、機器から値を取得できる点がsnmpgetの手軽さです。
snmpwalkコマンドで一覧取得
「snmpwalk」コマンドは、指定したOID以下の全情報を一覧で取得するコマンドです。
機器が持つMIB情報を幅広く確認したい場合に便利であり、OIDの探索や確認作業に役立ちます。
取得結果が多い場合は、grepコマンドと組み合わせて必要な情報だけを絞り込むのが効率的です。
MIBブラウザの活用
GUIで直感的にMIBを閲覧・取得したい場合は、MIBブラウザと呼ばれるツールが便利です。
「iReasoning MIB Browser」や「ManageEngine MibBrowser」などが代表的なMIBブラウザとして知られています。
OIDをツリー形式で視覚的に確認できるため、コマンドラインに慣れていない方でも直感的にMIB情報を探せるでしょう。
ZabbixとのSNMP・MIB連携方法
続いては、実際の監視ツールであるZabbixとのMIB・OID連携を確認していきます。
ZabbixはSNMPに標準対応しており、OIDを指定するだけで機器情報の自動収集が可能です。
ZabbixでのSNMPアイテム設定
ZabbixでSNMP監視を設定するには、ホスト設定でSNMPインターフェース(IPアドレス・ポート・バージョン・コミュニティ名)を追加します。
その後、アイテム設定画面でタイプを「SNMPエージェント」に選択し、取得したいOIDを入力するだけで設定完了です。
収集されたデータはグラフや最新データ画面でリアルタイムに確認でき、閾値を超えた際にアラートを飛ばす設定も簡単に行えます。
ZabbixでのMIBファイルインポート
拡張MIBを使用する場合は、ZabbixサーバーへMIBファイルをインポートする作業が必要です。
MIBファイルを「/usr/share/snmp/mibs/」ディレクトリに配置することで、OIDの代わりにMIB名でアイテムを指定できるようになります。
これにより、長い数字列のOIDを覚える必要がなくなり、設定ミスを防ぐことができるでしょう。
SNMPテンプレートの活用
Zabbixにはメーカー別・機器種別ごとのSNMPテンプレートが用意されており、これを適用するだけで代表的な監視項目を一括設定できます。
Cisco・Juniper・HPなどの主要ベンダーのテンプレートはZabbixコミュニティからも入手可能であり、監視設定の時間を大幅に短縮できます。
まずはテンプレートを活用し、必要に応じて独自のOIDを追加するアプローチが効率的です。
まとめ
本記事では、SNMPのMIBとOIDの意味・体系・データ取得方法・Zabbix連携について解説しました。
MIBはSNMPで管理する情報の辞書であり、OIDはその情報を一意に識別するための番号体系です。
この2つを正しく理解することで、SNMPを使った詳細なネットワーク監視が実現できるでしょう。
Zabbixなどのツールと組み合わせ、自社環境に合ったMIB・OID設定を積み重ねていくことが、ネットワーク管理の精度向上につながります。