SNMPTrapのMIBを利用したOID部分の変換について

ZabbixにSNMPTrapを飛ばす際、MIBを参照してメッセージの変換を考えています。
SNMPTrapを受信してZabbixに表示させるところまではできているのですが、
OIDの部分の変換ができず困っています。
何が不足しているかわかりますでしょうか。

受信メッセージは次のようになっています。
23:21:18 2018/11/08 .1.3.6.1.4.1.9.9.43.2.0.1 Normal "Status Events" testrouter - Notification of a configuration management event as commandLine running startup
「.1.3.6.1.4.1.9.9.43.2.0.1」の部分を「ciscoConfigManEvent」のように変換できればと考えています。

Zabbixサーバー側では次のように設定をしています。
内容は変更箇所を抜粋しています。

# vi /etc/snmp/snmptrapd.conf
--
authCommunity log,execute,net public
traphandle default /usr/sbin/snmptthandler
--

# vi /etc/snmp/snmptt.ini
--
date_time_format = %H:%M:%S %Y/%m/%d
syslog_enable = 0

/etc/snmp/snmptt.CISCO-CONFIG-MAN-MIB.conf
--

# vi /etc/snmp/snmptt.conf
--
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $ar $1
--

# vi /etc/sysconfig/snmptrapd
--
OPTIONS="-On -Lsd -p /var/run/snmptrapd.pid -M /usr/share/snmp/mibs:/usr/share/snmp/private-mibs -m all"
--

# vi /etc/snmp/snmp.conf
--
MIBDIRS /usr/share/snmp/mibs:/usr/share/snmp/private-mibs
MIBS all
--

MIBファイルは「CISCO-CONFIG-MAN-MIB.my」を次の用に処理しています。
# snmpttconvertmib --in=/usr/share/snmp/private-mibs/CISCO-CONFIG-MAN-MIB.my --out=output
# cat output | sed 's/^FORMAT /FORMAT ZBXTRAP $aA /' > /etc/snmp/snmptt.CISCO-CONFIG-MAN-MIB.conf

SNMPTrap送信に利用しているルータはCisco892で、writeコマンドの実行でこのトラップが飛びます。
よろしくお願いいたします。

コメント表示オプション

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

snmptt.ini で mibs_environment = ALL と設定してください。

ユーザー kkono の写真

ご連絡ありがとうございます。

snmptt.ini で mibs_environment = ALL を追加、snmpttを再起動してみましたが内容は変わりませんでした。

snmptranslateでは正常に表示されます。
# snmptranslate .1.3.6.1.4.1.9.9.43.2.0.1
CISCO-CONFIG-MAN-MIB::ciscoConfigManEvent

その他に確認すべき点がありますでしょうか。

ユーザー kkono の写真

さらに次の設定を追加することで変換できました。

# vi /etc/snmp/snmptt.ini
--
net_snmp_perl_enable = 1
translate_log_trap_oid = 1
--

結果、メッセージは次のようになりました。
10:00:37 2018/11/09 ciscoConfigManEvent Normal "Status Events" testrouter - Notification of a configuration management event as commandLine running startup

ありがとうございました。

ユーザー heya の写真

ああ、MIB ファイルは標準の場所じゃないんですね。たぶん、snmp.conf とか snmptrapd.conf の設定は snmptt には関係ないので、ディレクトリが分かってないんだと思います。

単純には、MIB ファイルを標準の場所に置けばいいんだと思います。それができない場合は、snmptt 起動時の環境変数で MIBDIRS を設定すればよさそうな気がしますが、どうやるんでしたっけ・・・。

ユーザー kkono の写真

MIBファイルはどんどん増えていきそうなのであえて分けています(/usr/share/snmp/private-mibs)。
でも標準の場所(/usr/share/snmp/mibs)に置いてもうまく動かなかったような…

ひとまずは分けたこの状態で行きたいと思います。
ありがとうございました。

ユーザー heya の写真

ああ、すみません、できたというのを読み飛ばしていたみたいです。
で、うまくいったということは、ディレクトリは問題じゃなかったということみたいですね。
>net_snmp_perl_enable = 1
>translate_log_trap_oid = 1
これの存在を忘れていました。自己解決できたようでよかったです。