SNMPTTで変換が上手くいかない

いつもお世話になっております。
Zabbixの前処理となり、厳密にはZabbixではないのですがご教授頂きたくお願い致します。

現在、以下の条件でSNMPtrap監視を行おうと考えておりますが、
上手くsnmpttのコンバートが出来ません。

■環境
CentOS Linux release 7.1.1503 (Core)
Zabbixver:3.0.5-1

■対象機器
CISCO Catalyst2960-X

■対象mib
CISCO-MEMORY-POOL-MIB.my

<手順>
1.以下からciscoのmib全て(v2.tar.gz)をダウンロード
ftp://ftp.cisco.com/pub/mibs/v2/

2.サーバの以下へ配置して展開
/usr/share/snmp/ciscomibs

3."CISCO-MEMORY-POOL-MIB.my"をsnmpttにコンバート

# MIBDIRS=/usr/share/snmp/mibs:/usr/share/snmp/ciscomibs snmpttconvertmib --in=/usr/share/snmp/ciscomibs/CISCO-MEMORY-POOL-MIB.my --out=/etc/snmp/snmptt.conf_CISCO-MEMORY-POOL-MIB --net_snmp_perl
→変換エラー
----------------------------------------------------------------------------------------------------
***** UCD-SNMP / NET-SNMP Perl module enabled *****

***** Processing MIB file *****

snmptranslate version: NET-SNMP version: 5.7.2
severity: Normal

File to load is: /usr/share/snmp/ciscomibs/CISCO-MEMORY-POOL-MIB.my
File to APPEND TO: /etc/snmp/snmptt.conf_CISCO-MEMORY-POOL-MIB

MIBS environment var: /usr/share/snmp/ciscomibs/CISCO-MEMORY-POOL-MIB.my
mib name: CISCO-MEMORY-POOL-MIB

***** Using UCD-SNMP / NET-SNMP Perl module *****

Processing MIB: CISCO-MEMORY-POOL-MIB
#
Split line TRAP-TYPE / NOTIFICATION-TYPE found (Gauge32,).
Line: 18
NOTIFICATION-TYPE: Gauge32
Enterprise: ciscoMgmt
Looking up via snmptranslate: CISCO-MEMORY-POOL-MIB::Gauge32
Unknown object identifier: CISCO-MEMORY-POOL-MIB::Gauge32
OID:
#
Line: 302
NOTIFICATION-TYPE: ciscoMemoryPoolLowMemoryNotif
Variables: ciscoMemoryPoolName ciscoMemoryPoolUsed
Enterprise: ciscoMemoryPoolMIBNotificationPrefix
Looking up via snmptranslate: CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLowMemoryNotif
OID: .1.3.6.1.4.1.9.9.48.2.0.1
#
Line: 321
NOTIFICATION-TYPE: ciscoMemoryPoolLowMemoryRecoveryNotif
Variables: ciscoMemoryPoolName ciscoMemoryPoolUsed
Enterprise: ciscoMemoryPoolMIBNotificationPrefix
Looking up via snmptranslate: CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolLowMemoryRecoveryNotif
OID: .1.3.6.1.4.1.9.9.48.2.0.2

Done

Total translations: 3
Successful translations: 2
Failed translations: 1
----------------------------------------------------------------------------------------------------

※CISCO-PROCESS-MIB.myは正常にコンバートできました。

auge32が問題だと言われているようですが、
検索してもわかりませんでした。
ご存知の方がいらっしゃいましたら教えて頂きたくお願い致します。

コメント表示オプション

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

私も手元の環境で試してみましたが同様の結果です。

とはいえ、CISCO-MEMORY-POOL-MIB.my内でのトラップの定義は、

 ciscoMemoryPoolLowMemoryNotif
 (.1.3.6.1.4.1.9.9.48.2.0.1)

 ciscoMemoryPoolLowMemoryRecoveryNotif
 (.1.3.6.1.4.1.9.9.48.2.0.2)

の2つのようですし、最初の18行目は、IMPORTSで定義を読み込んで
いるだけの箇所なので、19行目のNOTIFICATION-TYPEの前がトラッ
プの名前だと勘違いして、

 CISCO-MEMORY-POOL-MIB::Gauge32

という定義を探してしまったのだと思います。

私は、この18行目のエラーは無視してよいと思います。

ユーザー mocha の写真

たぶんですが Ciscoが出してるSNMPv2-SMI に本来あるべき以下の定義がないせいではないかと。

Gauge32 ::=
[APPLICATION 2]
IMPLICIT INTEGER (0..4294967295)

[APPLICATION 2]の行は余分かもしれませんが SNMPv2-SMIかGauge32を参照しているMIBファイルで
名前宣言をしてあげればコンパイルがとおる気がするので おためしいただけますか?

ユーザー TNK の写真

kaeruさんは、MIBDIRSを指定してsnmpttconvertmibを実行されてい
ます。

Gauge32自体は、/usr/share/snmp/mibs内のSNMPv2-SMI.txtで定義
されているので、改めて定義する必要はないと思います。

もし個別に再定義が必要なのであれば、他のデータ型でもエラーが
出力されるはずではありませんか?

ユーザー mocha の写真

すっかり間があいてしまいまして・・・

本来であれば おっしゃるとおりだとおもいます
こちらの環境固有の問題なのか 過去にどうしても変換エラーになってしまい その際に先に書いた方法で逃げたことがあったため
参考になればということで投稿させていただきました
# MIBファイルをため込みすぎて 整合性に問題がでていたのかもしれません

ユーザー kaeru の写真

>>TNK様
>>mocha様
ご回答ありがとうございます。
コンバートしたトラップファイルを使用したところ動作しましたので、
一先ずこれで動かして状況を見てみようと思います。
他の技術者にも確認して貰いましたがCISCO側のミスではないかとの所見でした。
年明けにCISCO技術者と話をする機会がありますのでそこで確認してみようと思います。
重ねてご回答ありがとうございました。

ユーザー TNK の写真

snmpttconvertmibは、あまり賢くて正確な処理はできていなかった
と記憶しています。

具体的に何を変換した時かは忘れてしまいましたが、その時も、ト
ラップとは全く関係ない箇所でエラーを吐いていたので、そのエラー
は無視しました。
とはいえ、必要な個所は変換してくれるので、手動でやるよりはるか
に効率的に変換できると思います。

先の回答でも書かせて頂きましたが、私は、CISCO側のミスではなく、
変換処理時の該当箇所の抽出の処理が、関係の無い行まで抽出してし
まっているのではないかと考えています。

ユーザー kaeru の写真

>>TNK様
snmpttconvertmibでのエラー事例がある旨、承知しました。

>先の回答でも書かせて頂きましたが、私は、CISCO側のミスではなく、
>変換処理時の該当箇所の抽出の処理が、関係の無い行まで抽出してし
>まっているのではないかと考えています。
上記についても承知しました。
snmptt起因でMIB変換が失敗する可能性がある…というのは
かなり大きいな注意点と考えますので留意しておきます。
詳細な補足まで頂き、誠にありがとうございました。

ユーザー TNK の写真

snmpttでの変換ではなく、snmpttconvertmibの問題です。

----- わかりにくかったので表現変更 -----

snmpttのトラップハンドリングに問題があるのではありません。

snmpttconvertmibというコマンドで、MIBファイルからsnmptt
用のファイルに変換するものだけの問題です。

ユーザー kaeru の写真

>>TNK様
すいません。文を端折ってしまいました。
問題のスコープが"snmpttconvertmibによる変換"である旨、承知しました。

>>mocha様
補足ありがとうございました。
色々調べているうちに、
コンバート周りでエラーが出てMIBに定義を加えた…という記事も見つかりました。
エラーが出た際は合わせてチェックするようにしてみます。