プライベート MIB を使えるようにする
ネットワークなどを監視する際、標準 MIB の情報だけでなく各ベンダー固有の情報も欲しいことがあります。このベンダーが用意した独自の情報はプライベート MIB として定義されておりプライベート MIB を使用できるよう設定していきます。
少し古い機器ですが、ここではアライドテレシスのスイッチ GS908M を例に環境を構築していきたいと思います。
環境
- Raspberry Pi 3 model B+
- Raspbian Buster 版
MIB(Management Information Base) と OID(Object IDentifier) とは
MIB とは、ルーターやスイッチ、サーバなどの機器から SNMP を介して取得する情報に対して固有の名前を与えている規格になります。
MIB には、インターフェース名、稼働時間といった一般的に使用されるものは標準 MIB として定義されており、ベンダー独自で使用されているものはプライベート MIB(拡張 MIB 等) として定義されています。
プライベート MIB の設定
アライドテレシスのサイトから使用している機器に用意されたプライベート MIB のファイルをダウンロードします。
ダウンロードしたファイルを作成したプライベート MIB の配置ディレクトリへ移動します。
pi@raspberrypi:~ $ sudo mv gs* /usr/share/snmp/mibs/vendor/
移動したファイルの所有者を root に変更します。
pi@raspberrypi:~ $ sudo chown root:root /usr/share/snmp/mibs/vendor/gs*
追加したプライベート MIB を対象とするように保管先のパスを追加します。
pi@raspberrypi:~ $ sudo vi /etc/snmp/snmp.conf
# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loading them by commenting out the following line.
# mibs :
mibdirs /usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/snmp/mibs/vendor
mibs ALL
snmptranslate コマンドを使用してベンダー固有の OID を変換できるか確認してみます。
pi@raspberrypi:~ $ sudo snmptranslate .1.3.6.1.4.1.207.8.48.1.102
Bad operator (INTEGER): At line 73 in /usr/share/snmp/mibs/ietf/SNMPv2-PDU
AT-GS900M-MIB::gs900mRecoverTemperatureTrap
名前を引くことはできるのですが、エラーが発生します。グーグル先生に教えを乞うと、いくつかのサイトで MIB ファイルを差し替えるという記事があります。
pi@raspberrypi:~ $ sudo wget http://www.iana.org/assignments/ianaippmmetricsregistry-mib/ianaippmmetricsregistry-mib -O /usr/share/snmp/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
pi@raspberrypi:~ $ sudo wget http://pastebin.com/raw.php?i=p3QyuXzZ -O /usr/share/snmp/mibs/ietf/SNMPv2-PDU
pi@raspberrypi:~ $ sudo wget http://pastebin.com/raw.php?i=gG7j8nyk -O /usr/share/snmp/mibs/ietf/IPATM-IPMC-MIB
標準 MIB おw置き換えてもう一度コマンドを実行してみます。
pi@raspberrypi:~ $ sudo snmptranslate .1.3.6.1.4.1.207.8.48.1.102
AT-GS900M-MIB::gs900mRecoverTemperatureTrap
今度は、エラーなく変換することができました。
以上で設定が完了しました。