snmpttconvertmib Failed translationsについて
お世話になります。
初めて投稿となりますので、不足等ありましたら
ご指摘のほど宜しくお願いいたします。
snmpttconvertmib Failed translationsについてご質問させてください。
過去のQAと下記ページを参考にさせて頂き、snmpttconvertmibを使い、
net-snmpの既存で設置されているMIBをコンバートさせたいのですが、
コンバートが成功するMIBと失敗するMIBに分かれます。
http://www.slideshare.net/qryuu/zabbix20snm-ptt
目的としては、コンバートに成功しているMIBファイルと同様に
失敗しているMIBファイルもコンバートできるようにすることです。
以下に成功と失敗のログ(一部省略)と使用したコマンドを記載します。
■共通コマンド
snmpttconvertmib --in=/usr/share/snmp/mibs/XXXXX.txt --out=/etc/snmp/snmptt_confs/XXXXX.conf.org --net_snmp_perl
→XXXXX:各MIBファイル名
■成功MIB(IF-MIB)
Line: 1117
NOTIFICATION-TYPE: linkUp
Variables: ifIndex ifAdminStatus ifOperStatus
Enterprise: snmpTraps
Looking up via snmptranslate: IF-MIB::linkUp
OID: .1.3.6.1.6.3.1.1.5.4
Done
Total translations: 2
Successful translations: 2
Failed translations: 0
■失敗MIB①(AGENTX-MIB)
***** Using UCD-SNMP / NET-SNMP Perl module *****
Processing MIB: AGENTX-MIB
Done
Total translations: 0
Successful translations: 0
Failed translations: 0
The MIB file did not contain any TRAP-TYPE or NOTIFICATION-TYPE definitions,
so no translations occured. Try another MIB file.
■失敗MIB②(SNMPv2-SMI)
Line: 301
NOTIFICATION-TYPE:
Enterprise:
Looking up via snmptranslate: SNMPv2-SMI::
Unknown object identifier: SNMPv2-SMI::
OID:
Done
Total translations: 1
Successful translations: 0
Failed translations: 1
成功は表示の通り、問題無く変換ファイルが生成され、
TRAPを読み取ることが出来ています。
失敗①は依存関係のMIBがコンバートできていないため、失敗していると認識しており、
失敗②に関しては、依存関係は無いと認識しているので、成功のMIBとは異なり
何故コンバートに失敗するのか切り分けが出来ずにおります。
失敗の切り分け(どこのLineで読み込みを失敗した等)の
方法等ご教示頂くことは可能でしょうか。
この度の質問はzabbixの機能ではないと思いますが、
様々なサイトを調べたりしても解決出来ないため、
皆様のご助力を頂けますと幸いです。
■環境
snmpttはRPMパッケージより1.4をインストール
Zabbixサーバはver 2.2.10になります。
■設定内容
/etc/zabbix/zabbix_server.conf
======================
SNMPTrapperFile=/var/log/snmptt/snmptt.log
StartSNMPTrapper=1
======================
/etc/snmp/snmptrapd.conf
======================
authCommunity log,execute,net XXXXXX
perl do "/usr/share/snmptt/snmptthandler-embedded";
traphandle default /usr/sbin/snmptthandler
disableAuthorization yes
======================
/etc/snmp/snmptt.conf
======================
#
# Zabbixテスト用
#
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $ar $1
======================
/etc/init.d/snmptrapd
======================
OPTIONS=“-Lsd -p /var/run/snmptrapd.pid“
↓
OPTIONS="-m +ALL -Lsd -On -p /var/run/snmptrapd.pid"
======================
/etc/snmp/snmptt.ini
======================
mode = daemon
net_snmp_perl_enable = 0
net_snmp_perl_best_guess = 0
sleep = 5
translate_log_trap_oid = 0
log_system_enable = 0
syslog_enable = 0
syslog_system_enable = 1
unknown_trap_log_enable = 0
date_time_format = %Y/%m/%d %H:%M:%S
DEBUGGING = 0
TrapFile追加分
/etc/snmp/snmptt.conf
/etc/snmp/snmptt_confs/IF-MIB.conf.org
/etc/snmp/snmptt_confs/AGENTX-MIB.conf.org
/etc/snmp/snmptt_confs/SNMPv2-SMI.conf.org
======================
初歩的な質問でご迷惑をお掛けしますが、
何卒、よろしくお願い致します。
TNK - 投稿数: 4769
失敗(1)は、そのファイル「AGENTX-MIB.txt」にトラップに関する
定義がないので、そもそも変換するものがなかったのでしょう。
失敗(2)に関しては、そもそも、このファイル内に必要なトラップ
の定義情報があるのでしょうか?
ファイル「SNMPv2-SMI.txt」を見る限り、MIBの定義で利用する型
の定義などが行われているだけのように見えます。
イベントで発生するトラップや通知の設定は含まれていないのでは
ないでしょうか?
/usr/share/snmp/mibs以下のすべてのファイルをconvertする必要
は無いはずです。
参考にされた資料にも「Trap用の情報を持たないmibは除きます」
と書かれています。
何のトラップをハンドリングされたいのかをご確認の上、必要なフ
ァイルを変換してご利用ください。
yoshinori - 投稿数: 9
TNKさん
早速のご回答ありがとうございます。
IF-MIB.txtをconvert後にNW機器のインターフェース
リンクアップダウンを文字列に変換できたため、
LINUXの再起動を実施してもOIDのみが表示されたことから
MIBファイルのconvertが出来ていないことが要因かと誤解しておりました。
また、MIBファイルの知識が乏しいことも重なり、以下の方式かと思い込んでいました。
「MIBファイルのconvertを実施=TRAPをZabbixが読み込める変換ファイルに作成」
厚かましくて、大変申し訳ございませんが、最後に確認という意味で
以下の認識が正しいかだけ、ご教示頂いても宜しいでしょうか。
ご教示頂いた内容を踏まえますと、TRAP用の情報を持つMIBのみがconvertできるため、
convertを失敗してもTRAPが読み込めない原因にはならない。
(読み込めないのはMIBが不足しているため)
仮に依存関係が必要なMIBだとしても、Zabbixの同一フォルダ内で保持していることで
依存関係は成立するということで宜しいでしょうか。
重ねての質問で大変恐縮でございますが、
ご確認のほど、何卒、宜しくお願いいたします。
TNK - 投稿数: 4769
人手で設定ファイルを作成するのが面倒なので、snmpttが受信した
SNMPトラップを人が読める形に変換できるように、MIBファイル内
にあるトラップの定義を読み取って、そのトラップに関するOIDと
の対応を記述したファイルを生成しているわけです。
snmpttの設定で、メッセージの対応が記述されていないものに関し
て、特定の文字列に変換して転送する設定がないと、snmptrapdか
らsnmpttを経由したところで、Zabbixが読み込むトラップファイル
に出力されないので、Zabbixでは受け取れなくなります。
なので、IF-MIBから変換したlinkDownやlinkUpのように明確にOID
との対応を定義していないものに関してもトラップを受信されたい
のであれば、そういう設定も必要になったと思います。
しかし、先に書かれていた設定には、その記述は行われているよう
ですね。
あと、トラップを投げてきた機器がホストとして登録され、そのIP
アドレスも一致していることが必要です。
一致していない場合は、該当するホストが登録されていないという
ことで、zabbix_server.logにunmached trap receivedというよう
なログが出力されているはずです。
# 詳細は、先の参考にされていた資料をご確認ください。
Zabbixの同一フォルダとは何を示されていますか?
SNMPトラップのOIDからの変換は、Zabbixの設定ではなくsnmptt関
連の設定です。
snmpttの設定で、どのディレクトリにある設定ファイルを参照する
よう設定されているかもご確認ください。
yoshinori - 投稿数: 9
TNK さん
早速のご回答誠にありがとうございます。
Zabbixの知識が浅くこの様な初歩的な質問にも
丁寧に回答を頂き感謝致します。
これからも、フォーラムでお世話になることがあると思いますが、
何卒、その際にはご助力を頂ければ幸いです。
ご教示頂きましたこと、重ねてお礼を申し上げます。