MIB 代表管理信息库。 MIB 文件允许您使用OID(对象标识符)的文本表示。使用 Zabbix 监控 SNMP 设备时可以使用原始 OID,但如果您更喜欢使用文本表示,则需要安装 MIB 文件。
例如,
是 OID 的文本表示
在基于 Debian 的系统上:
在基于 RedHat 的系统上:
在基于 RedHat 的系统上,默认情况下应该启用 mib 文件。 在基于 Debian 的系统,您必须编辑文件 /etc/snmp/snmp.conf
和注释掉 mibs :
行
可以使用 snmpwalk
实用程序来测试 snmp MIB。如果你没有安装,请使用以下说明。
在基于 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 服务器或代理,例如:
重启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 从 MIB 文件到 OID:
如果您收到错误而不是 OID,请确保之前的所有命令没有返回任何错误。
对象名称翻译成功,您可以使用自定义 MIB文件。请注意查询中使用的 MIB 名称前缀 (CISCO-SMI::)。你在使用命令行工具以及 Zabbix 时将需要这个。
在 Zabbix 中使用此 MIB 文件之前,请不要忘记重新启动 Zabbix 服务器/代理。
请记住,MIB 文件可以具有依赖关系。 也就是说,一个 MIB 可能需要另一个 MIB。为了满足这些您必须安装所有受影响的 MIB 的依赖项文件。