CodeZine(コードジン)

特集ページ一覧

net-snmpについて(独自監視項目の追加) - 前編

net-snmpによる拡張MIBの設定方法について(前編)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/09/22 14:00
目次

MIBファイル構成

7.3 MIBファイル構成

 MIBファイルは大まかに言うと、以下の構成になっています。

  • モジュール名
  • リンケージ
  • MIBツリー定義
  • 値の定義

 今回使用するMATSU-TEST-MIB.txtも同様の構成になっています。以下、各々を説明します。

7.3.1 モジュール名

 まず以下の一文を最初に記述します。これによってMIB定義の開始を表します。

モジュール名定義
MATSU-TEST-MIB DEFINITIONS ::= BEGIN

 MATSU-TEST-MIB というのがモジュール名になります。これはファイル名と同じでなくてはいけません(拡張子は何でも良いが.txtが望ましそう)。

 BEGINとある通り、ファイルの最後にはENDが必要で、MIB定義の終了を意味します。

7.3.2 リンケージ

 次に以下の記述を行います。IMPORTSとは、既に定義されてるマクロ名やデータタイプを当MIBファイルでも使用することを宣言するものです。ちなみにEXPORTと記述することで、MIBファイル内で定義した新しいマクロ名やデータタイプを他のMIBファイルで使用できるようにするものです。複数のMIBファイルを作成する場合に有効です。

リンケージ定義
IMPORTS
  MODULE-IDENTITY    FROM SNMPv2-SMI
  NOTIFICATION-TYPE  FROM SNMPv2-SMI
  Integer32          FROM SNMPv2-SMI
  TEXTUAL-CONVENTION FROM SNMPv2-TC
  SnmpAdminString    FROM SNMP-FRAMEWORK-MIB;

 SNMPv2-SMIとは、/usr/share/snmp/mibs/SNMPv2-SMI.txt を指しています。このファイルの中に、MODULE-IDENTITY やInteger32とは何者なのかが定義されていて、それらをこのMIBファイルで使用します、と宣言しています。

  • MODULE-IDENTITY
    連絡先やら更新履歴など、一般的な管理情報や説明文などを定義するために使用します。
  • NOTIFICATION-TYPE
    イベント通知の定義を行うために使用します。
  • TEXTUAL-CONVENTION
    既に定義されたデータタイプを利用して新しいデータタイプを定義する際に使用します
  • Integer32
    32ビットの範囲で数値データを使用する際に宣言します
  • SnmpAdminString
    文字列のデータタイプを使用する際に宣言します

7.3.3 MIBツリー定義

 当MIBファイルがツリー上に展開される場所を定義します。7.1章で述べたとおり、今回は12345という拡張番号をenterprises以下に追加します。

ツリー定義
org            OBJECT IDENTIFIER ::= { iso 3 }
dod            OBJECT IDENTIFIER ::= { org 6 }
internet       OBJECT IDENTIFIER ::= { dod 1 }
private        OBJECT IDENTIFIER ::= { internet 4 }
enterprises    OBJECT IDENTIFIER ::= { private 1 }
matsutest      OBJECT IDENTIFIER ::= { enterprises 12345 }

 なお、enterprisesまではSNMPv2-SMIで定義されているので、リンケージでenterprisesの使用を宣言した場合、下記の通り省略可能です。-- はコメントを表します。

ツリー定義
IMPORTS
  enterprises  FROM SNMPv2-SMI
-- org         OBJECT IDENTIFIER ::= { iso 3 }
-- dod         OBJECT IDENTIFIER ::= { org 6 }
-- internet    OBJECT IDENTIFIER ::= { dod 1 }
-- private     OBJECT IDENTIFIER ::= { internet 4 }
-- enterprises OBJECT IDENTIFIER ::= { private 1 }
matsutest      OBJECT IDENTIFIER ::= { enterprises 12345 }

 OBJECT IDENTIFIERは、左辺の文字列がOIDを意味し、右辺の括弧内の値が具体的なOIDの値を示します。

7.3.4 値の定義

 以下からは具体的にOIの定義をしていきます。

値の定義
mtuObject1     OBJECT-TYPE
  SYNTAX       SnmpAdminString
  MAX-ACCESS   read-only
  STATUS       current
  DESCRIPTION  "this element is for akamatsu test 1!!"
               ::= { matsutest1 1 }

 上記は、OID名がmtuObject1でOIDの値がmatsutest1の下で1(enterprises.12345.1.1)、文字列でread-onlyであることが定義されています。STATUS は状態を通知しているだけで、廃止予定であれば"deprecated"を、廃止されたものであれば"obsolete"を設定します。通常は"current"です。

 もう1つ、Trap送信用のOIについての定義を見ます。

値の定義
mtuStatusTrap  NOTIFICATION-TYPE
  OBJECTS      { mtuTrap }
  STATUS       current
  DESCRIPTION  "Trap of mtuTrap Status."
               ::= { matustrap 1 }

 Trap用OIを表す場合は"NOTIFICATION-TYPE"を設定します。OID名がmtuStatusTrapでOIDの値がmatsutrapの下で1(enterprises.12345.3.1)、関連するOIは"mtuTrap"であることを定義しています。

 値の定義を終えたら、"END"を記述して拡張MIB定義を終えています。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:net-snmpについて

著者プロフィール

  • 赤松 エイト(エイト)

    (株)DTSに勤てます。 WebアプリやJavaやLL等の上位アプリ環境を密かに憧れつつも、ず~っとLinuxとかHP-UXばかり、ここ数年はカーネル以上アプリ未満のあたりを行ったり来たりしています。 mixiもやってまして、こちらは子育てとか日々の日記メインです。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5