Sidebar

Become a monitoring expert!
Sign up for Zabbix training

3 MIB筛选器

介绍

MIB是一个管理信息库。 MIB筛选器允许使用OID(对象标识符)的文本表示形式。

举例,

ifHCOutOctets

OID的文本表示形式

1.3.6.1.2.1.31.1.1.1.10

在使用Zabbix监控SNMP设备时,可以使用以上任何一种,但是使用文本表示形式时感觉更舒适,该方式需要安装MIB筛选器。

安装MIB筛选器

Debian操作系统:

# apt install snmp-mibs-downloader
       # download-mibs

RedHat操作系统:

# yum install net-snmp-libs

启用MIB筛选器

在RedHat操作系统上,默认情况下启用mib筛选器。在Debian的操作系统上您必须编辑/etc/snmp/snmp.conf和取消mibs :的注释

由于许可证的原因,snmp软件不包含MIB筛选器,因此默认情况下MIB处于禁用状态,如果添加了MIB,可以通过取消注释来重新加载它们:

测试MIB筛选器

可以用使用snmpwalk程序来测试snmp管理信息库,如果尚未安装,请按照以下说明进行操作。

基于Debian操作系统:

# apt install snmp

基于RedHat操作系统:

# yum install net-snmp-utils

安装完成后,请使用下面的命令查询网络设备,注意命令一定不能输入错误:

$ 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筛选器的变更,因此每次更改后需要重启启动Zabbix server 和 proxy,例如:

# service zabbix-server restart

重启后,MIB筛选器的更改才会生效。

使用自定义MIB筛选器

每个GNU/Linux发行版都有标准的MIB库,但是一些设备供应商单独为他们的设备提供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:

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

如果你收到的结果是错误信息而不是OID。请确保先前的命令没有返回任何错误。

在使用命令行工具和Zabbix时,需要先将对象名称转换工作完成,这样您就可以使用自定义MIB库了。请注意查询时使用的MIB名称前缀(CISCO-SMI::)。

不要忘记在Zabbix中使用这个MIB库之前重新启动Zabbix server/proxy。

<note important>请记住,MIB文件可以有依赖项。也就是说,一个MIB库可能需要另一个MIB库。为了满足这些依赖关系,您必须安装所有受影响的MIB库。 :::