MIBとは、Management Information Base(管理情報ベース)の略です。
MIBファイルにより、OID(オブジェクト識別子)をテキストで表現したものです。
例えば
が OID のテキスト表現である場合
ZabbixでSNMPデバイスを監視する場合、どちらを使っても構いません。 テキスト表現の方が使いやすいと感じる場合は、MIBファイルをインストールする必要があります。
Debianベースのシステムの場合:
RedHat ベースのシステムの場合:
RedHat ベースのシステムでは、mib ファイルはデフォルトで有効になっているはずです。
Debian ベースのシステムでは、ファイル /etc/snmp/snmp.conf
を編集し、mibs :
snmp.confという行と
mibs :` という行をコメントアウトしてください。
# snmp のパッケージにはライセンスの関係で MIB ファイルが含まれていないため、
# MIBの読み込みはデフォルトで無効になっています。
# MIBを追加した場合は、以下の行をコメントアウトすることで、MIBの読み込みを再度有効にすることができます。
#mibs :
snmp MIB のテストは、snmpwalk
ユーティリティを使用して行うことができます。
もし、インストールされていない場合は、以下の手順で行ってください。
Debian ベースのシステムの場合:
RedHatベースのシステムの場合:
その後、以下のコマンドでネットワークデバイスに問い合わせたときに、エラーが出ないようにします:
$ snmpwalk -v 2c -c public <NETWORK DEVICE IP> ifInOctets
IF-MIB::ifInOctets.1 = Counter32: 176137634
IF-MIB::ifInOctets.2 = Counter32: 0
IF-MIB::ifInOctets.3 = Counter32: 240375057
IF-MIB::ifInOctets.4 = Counter32: 220893420
[...]
最も重要なことは、ZabbixのプロセスにはMIBファイルの変更が通知されないということです。
そのため、変更するたびにZabbixサーバまたはプロキシを再起動する必要があります。
その後、MIBファイルに加えられた変更が有効になります。
すべてのGNU/Linuxディストリビューションには、標準的なMIBファイルが付属しています。
しかし、いくつかのデバイスベンダーは、独自のものを提供しています。
例えば、CISCO-SMI MIB ファイルを使いたいとします。 以下の手順でダウンロードとインストールを行います。
# wget ftp://ftp.cisco.com/pub/mibs/v2/CISCO-SMI.my -P /tmp
# mkdir -p /usr/local/share/snmp/mibs
# grep -q '^mibdirs +/usr/local/share/snmp/mibs' /etc/snmp/snmp.conf 2>/dev/null || echo "mibdirs +/usr/local/share/snmp/mibs" >> /etc/snmp/snmp.conf
# cp /tmp/CISCO-SMI.my /usr/local/share/snmp/mibs
これで使えるようになったはずです。
オブジェクトの名前 ciscoProducts を OID に変換してみてください。
OID の代わりにエラーが表示される場合は、前のすべてのコマンドでエラーが返されていないことを確認します。
オブジェクト名の変換がうまくいけば、カスタム MIB ファイルを使用する準備が整います。
クエリで使用される MIB 名のプレフィックス (CISCO-SMI::) に注意してください。
これははZabbixだけでなく、コマンドラインツールを使用する際にも必要です。
このMIBファイルをZabbixで使用する前に、Zabbix server / proxy を再起動することを忘れないでください。
MIBファイルには依存関係があることに留意してください。
つまり、あるMIBが別のMIBを必要とする場合があります。これらの依存関係を満たすために
影響を受けるすべてのMIBファイルをインストールする必要があります。