3 MIB文件

介绍

MIB代表管理信息库。MIB文件允许使用OID(object标识符)的文本表示形式。 在使用Zabbix监控SNMP设备时可以直接使用原始OID, 但如果您更习惯使用文本表示形式,则需要安装MIB文件。

例如,

ifHCOutOctets

是OID

1.3.6.1.2.1.31.1.1.1.10 的文本表示形式

安装MIB文件

在基于Debian的系统上:

apt install snmp-mibs-downloader
       download-mibs

在基于RedHat的系统上:

dnf install net-snmp-libs

启用 MIB 文件

在基于RedHat的系统上,MIB文件默认应已启用。 在基于Debian的系统上,您需要编辑file /etc/snmp/snmp.conf并注释掉包含mibs :的行

As the snmp packages come without MIB files due to license reasons, loading

# MIB默认被禁用。如果您已添加MIB,可以通过取消注释以下行来重新启用加载
       # loading them by commenting out the following line.
       mibs :

测试MIB文件

测试SNMP MIB可以使用snmpwalk工具。如果尚未安装,请按照以下说明操作。

在基于Debian的系统上:

apt install snmp

在基于RedHat的系统上:

dnf install net-snmp-utils

安装完成后,当您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中使用MIB

最重要的是要记住,Zabbix进程不会get 感知到对MIB文件的修改。因此每次更改后 必须重启Zabbix server或proxy,例如:

systemctl restart zabbix-server

此后,对MIB文件所做的更改才会生效。

使用自定义 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:

snmptranslate -IR -On CISCO-SMI::ciscoProducts
       .1.3.6.1.4.1.9.1

如果收到错误而非OID,请确保之前所有 命令均未返回任何错误。

object名称转换成功后,您就可以使用自定义MIB file了。请注意query中使用的MIB名称前缀(CISCO-SMI::)。 在使用命令行工具和Zabbix时都需要这个前缀。

在Zabbix中使用此MIB file前, 请勿忘记重启Zabbix server/proxy。

请注意MIB文件可能存在依赖关系。 即一个MIB可能需要另一个MIB。为满足这些 依赖关系,您必须安装所有相关的MIB 文件。