CiscoのMIBファイルの設置方法について

いつもお世話になっています。

OS:CentOS6.4
ZabbixServerバージョン:2.2.7

SNMPTTの設定を行っていて、
下記のページを参考にSNMPTTを設定し、WindowsからのSNMPTrapをイベント検知できるところまで確認しています。
https://www.zabbix.com/documentation/2.0/jp/manual/config/items/itemtype...

イベント検知の確認できたので、CiscoのMIBファイルを設置し、動作を確認しようとしたのですが、snmpttサービスの再起動などすると、以下のエラーになってしまいます。

===
[root@zabbix-test-serv mibs]# service snmptt restart
snmptt を停止中: [ OK ]
snmptt を起動中: Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/IP-MIB.txt)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/DISMAN-EVENT-MIB.txt)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/DISMAN-SCHEDULE-MIB.txt)

■名前解決
[root@dw-zabbix-t-serv mibs]# snmptranslate .1.3.6.1.4.1.9.9.46.2.0.7
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/IP-MIB.txt)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/DISMAN-EVENT-MIB.txt)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/DISMAN-SCHEDULE-MIB.txt)
SNMPv2-SMI::enterprises.9.9.46.2.0.7
===

”Did not find 'zeroDotZero' in module SNMPv2-SMI”という文言で調べたのですが、解決方法が見当たらなかったので、こちらに書かせていただきました。

Zabbixにかかわる部分ではナイトは思うのですが、上記のエラーの解消方法がもしお分かりになる方がいらっしゃいましたら、ご教授いただけないでしょうか。

CiscoのMIBファイルは以下のサイトで”1.3.6.1.4.1.9.9.46.2.0.7”を検索して、取得しました。
http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=ja

Ciscoから取得したMIBファイルは以下になります。
===
wget ftp://ftp.cisco.com/pub/mibs/v2/SNMPv2-SMI.my
wget ftp://ftp.cisco.com/pub/mibs/v2/SNMPv2-TC.my
wget ftp://ftp.cisco.com/pub/mibs/v2/SNMPv2-CONF.my
wget ftp://ftp.cisco.com/pub/mibs/v2/SNMPv2-MIB.my
wget ftp://ftp.cisco.com/pub/mibs/v2/CISCO-SMI.my
wget ftp://ftp.cisco.com/pub/mibs/v2/IANAifType-MIB.my
wget ftp://ftp.cisco.com/pub/mibs/v2/IF-MIB.my
wget ftp://ftp.cisco.com/pub/mibs/v2/CISCO-TC.my
wget ftp://ftp.cisco.com/pub/mibs/v2/INET-ADDRESS-MIB.my
wget ftp://ftp.cisco.com/pub/mibs/v2/SNMP-FRAMEWORK-MIB.my
wget ftp://ftp.cisco.com/pub/mibs/v2/RMON-MIB.my
wget ftp://ftp.cisco.com/pub/mibs/v2/CISCO-VTP-MIB.my
===

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

CentOS 6標準のnet-snmpパッケージを利用されているのであれば、

 /usr/share/snmp/mibs/SNMPv2-SMI.txt

を上書きしてしまいませんでしたか?
デフォルトのSNMPv2-SMI.txtには、zeroDotZeroの定義が含まれています。

ご確認ください。

=====
CentOS 6標準のnet-snmpパッケージを利用されているのであれば、

 /usr/share/snmp/mibs/SNMPv2-SMI.txt

を上書きしてしまいませんでしたか?
=====
上記ファイルを確認しましたが、上書きされていませんでした。

~~~
# ll SNMPv2-SMI.txt
-rw-r--r-- 1 root root 8924 10月 18 08:23 2014 SNMPv2-SMI.txt

# ll SNMPv2-SMI.my
-rw-r--r-- 1 root root 1349 12月 23 13:06 2014 SNMPv2-SMI.my
~~~

■該当部分抜粋
~~~
-- definitions of administrative identifiers

zeroDotZero OBJECT-IDENTITY
STATUS current
DESCRIPTION
"A value used for null identifiers."
::= { 0 0 }

END
~~~

★★★
ここまで書いて、ちょっと試してみたのですが、Ciscoからダウンロードした"SNMPv2-SMI.my”を削除しましたらエラーが出なくなりました。
SNMPとかMIBとか知識が乏しくて申し訳ないのですが、Ciscoからダウンロードしたファイルのうち、すでにサーバ上にあるファイルで、ファイル名が拡張子以外同じものは削除すべきなのでしょうか。

"■ファイル名が拡張子以外おなじもの"を削除すると、エラーにはなりませんでしたが、
SNMPv2-SMI::enterprises.9.9.46.2.0.7
のままでした。

~~~
# rm SNMPv2-SMI.my
rm: remove 通常ファイル `SNMPv2-SMI.my'? y
snmptt を停止中: [ OK ]
snmptt を起動中: [ OK ]

# snmptranslate .1.3.6.1.4.1.9.9.46.2.0.7
CISCO-VTP-MIB::vlanTrunkPortDynamicStatusChange
~~~

■ファイル名が拡張子以外おなじもの
~~~
IANAifType-MIB.my
IF-MIB.my
INET-ADDRESS-MIB.my
RMON-MIB.my
SNMP-FRAMEWORK-MIB.my
SNMPv2-CONF.my
SNMPv2-MIB.my
SNMPv2-SMI.my
SNMPv2-TC.my
~~~

ユーザー zinten の写真

kasugaiさん

>ここまで書いて、ちょっと試してみたのですが、Ciscoからダウンロードした"SNMPv2-SMI.my”を削除しましたらエラーが出なくなりました。
>SNMPとかMIBとか知識が乏しくて申し訳ないのですが、Ciscoからダウンロードしたファイルのうち、すでにサーバ上にあるファイルで、ファイル名が拡張子以外同じものは削除すべきなのでしょうか。

ファイル名が同じものというよりもファイルの中のMIB名?(「~~~ DEFINITIONS ::= BEGIN」の~~~の部分)が同じ場合
どういうロジックで選択されるのか分かりませんが二つあるうちのどちらか一方のMIBしか読み込まれません。
大体はファイル名=MIB名なのですが時々1つのファイルに複数書かれていたりrfcxxxxみたいに書かれる場合等があるので注意が必要です。

ユーザー TNK の写真
拡張子だけが異なるファイルのほとんどは、同じ項目の定義用のフ
ァイルだったと思いますので、それ以外のファイルを追加すればよ
いと思います。

今回の場合であれば、

 CISCO-SMI.my
 CISCO-TC.my
 CISCO-VTP-MIB.my

の3つのファイルをダウンロードすればよいのではないでしょうか。

色々設定方法はあるかもしれませんが、私は、

 /usr/share/snmp/private-mibs

というディレクトリを作成して、そこに個別のMIBファイルをコピー
して、/etc/snmp/snmp.confというファイルを以下のような内容で
新規に作成します。
MIBDIRS /usr/share/snmp/mibs:/usr/share/snmp/private-mibs
MIBS all
そうすれば、
# snmptranslate .1.3.6.1.4.1.9.9.46.2.0.7
CISCO-VTP-MIB::vlanTrunkPortDynamicStatusChange
#
という実行結果を得ることができるでしょう。

とはいえ、snmpttとの組み合わせで利用されるのであれば、snmptt
の設定ファイルでsnmptrapからの情報を変換するので、特に必要の
ない手順なのではないでしょうか?

私自身が環境を構築したときには、snmptrapdからsnmpttへの通知
時には、OIDをそのまま利用するようにsnmptrapdのオプションを設
定していますし、MIBファイルからsnmptt用の設定ファイルに変換
するために、snmpttconvertmibを利用するならば、設定ファイルに
はOIDでそのまま出力されるので、OIDそのままでマッチングできる
と思います。

以下のURLにある資料も参考にしてみてください。

ご参考:【Zabbix2.0】snmpttによるトラップメッセージの編集
http://www.slideshare.net/qryuu/zabbix20snm-ptt

情報ありがとうございます。
個別のMIBファイルはディレクトリを分けた方が管理しやすそうですね。参考にさせて頂きます。

ユーザー heya の写真

こんにちは。
よく理解しているわけではないのですが、似たようなことがあったので、参考までに。

/path/to/mibs 内に MIB ファイル(※)を置き、 snmp.conf に MIBDIRS +/path/to/mibs と書くと、同じようなエラーが出ました。でも MIBDIRS -/path/to/mibs とするとエラーが出ませんでした。読み込む順番が関係あるのかもしれません。

※これを使ってくれと言われて受け取ったものをそのまま使ったので、中身はよく見ていませんが、ざっと見たところ、最初からある RFC1213-MIB.txt と同じような名前の rfc1213.mib というファイルがあり、どちらも RFC1213-MIB を定義しているようでした。
(kasugai さんの投稿を見て、私の場合も rfc1213.mib を削除しておいた方がいいような気がしてきました。)

>"■ファイル名が拡張子以外おなじもの"を削除すると、エラーにはなりませんでしたが、
>SNMPv2-SMI::enterprises.9.9.46.2.0.7
>のままでした。
># rm SNMPv2-SMI.my
># snmptranslate .1.3.6.1.4.1.9.9.46.2.0.7
>CISCO-VTP-MIB::vlanTrunkPortDynamicStatusChange
ちゃんと名前変換できているのでは?

情報ありがとうございます。
このあたり詳しくありませんが、ファイルの読み込む順番なども関係ありそうですね。

時間を作って詳しく調べてみようと思います。
=====
>"■ファイル名が拡張子以外おなじもの"を削除すると、エラーにはなりませんでしたが、
>SNMPv2-SMI::enterprises.9.9.46.2.0.7
>のままでした。
># rm SNMPv2-SMI.my
># snmptranslate .1.3.6.1.4.1.9.9.46.2.0.7
>CISCO-VTP-MIB::vlanTrunkPortDynamicStatusChange
ちゃんと名前変換できているのでは?
=====
上記ですが、私の書き方が悪かったです。
ファイル名が拡張子以外おなじものを削除すると、エラーにはならずコマンドの結果が、
”SNMPv2-SMI::enterprises.9.9.46.2.0.7”で名前解決できず、
"SNMPv2-SMI.my"を削除したら名前解決できるようになったという意味で書き込んでいました。すみませんでした。