MIB代表管理信息库。MIB文件允许使用OID(object标识符)的文本表示形式。 在使用Zabbix监控SNMP设备时可以直接使用原始OID, 但如果您更习惯使用文本表示形式,则需要安装MIB文件。
例如,
是OID
1.3.6.1.2.1.31.1.1.1.10 的文本表示形式
在基于Debian的系统上:
在基于RedHat的系统上:
dnf install net-snmp-libs
在基于RedHat的系统上,MIB文件默认应已启用。 在基于Debian的系统上,您需要编辑file /etc/snmp/snmp.conf
并注释掉包含mibs :
的行
测试SNMP MIB可以使用snmpwalk
工具。如果尚未安装,请按照以下说明操作。
在基于Debian的系统上:
在基于RedHat的系统上:
安装完成后,当您query网络设备时,以下命令不应报错:
$ snmpwalk -v 2c -c public <网络设备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 文件。