MIB 是管理信息库(Management Information Base)的缩写。MIB 文件允许使用 OID(object 标识符)的文本表示形式。 在使用 Zabbix 监控 SNMP 设备时,可以使用原始的 OID,但如果您更习惯使用文本表示形式,则需要安装 MIB 文件。
例如,
是以下 OID 的文本表示形式:
在基于 Debian 的系统上:
在基于 RedHat 的系统上:
在基于 RedHat 的系统上,MIB 文件默认情况下应已启用。 在基于 Debian 的系统上,你需要编辑 file /etc/snmp/snmp.conf
并注释掉包含 mibs :
的行。
可以使用 snmpwalk
工具测试 SNMP MIB。如果尚未安装该工具,请按照以下说明操作。
在基于Debian的系统上:
在基于 RedHat 的系统上:
然后,当您query a时,以下命令不得给出错误 网络设备:
$ 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 进程不会get 获知对 MIB 文件所做的更改。因此每次更改后,都必须重启 Zabbix server 或 proxy,例如:
此后,对 MIB 文件所做的更改才会生效。
每个GNU/Linux发行版都附带标准MIB文件。但某些设备厂商会提供自己的MIB文件。
假设您需要使用CISCO-SMI MIB file。以下指令将下载并安装该文件:
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
现在您应该可以使用它了。尝试将MIB file中的object ciscoProducts 名称转换为OID:
如果收到错误而非OID,请确保之前所有命令均未返回错误。
object名称转换成功后,您就可以使用自定义MIB file了。请注意query中使用的MIB名称前缀(CISCO-SMI::)。在使用命令行工具和Zabbix时都需要这个前缀。
在Zabbix中使用此MIB file前,请勿忘记重启Zabbix server/proxy。
请注意MIB文件可能存在依赖关系。即一个MIB可能需要另一个MIB。为了满足这些依赖关系,您必须安装所有相关的MIB文件。