3 MIB筛选器

介绍

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

举例,

  1. ifHCOutOctets

OID的文本表示形式

  1. 1.3.6.1.2.1.31.1.1.1.10

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

安装MIB筛选器

Debian操作系统:

  1. # apt install snmp-mibs-downloader
  2. # download-mibs

RedHat操作系统:

  1. # yum install net-snmp-libs

启用MIB筛选器

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

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

测试MIB筛选器

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

基于Debian操作系统:

  1. # apt install snmp

基于RedHat操作系统:

  1. # yum install net-snmp-utils

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

  1. $ snmpwalk -v 2c -c public <NETWORK DEVICE IP> ifInOctets
  2. IF-MIB::ifInOctets.1 = Counter32: 176137634
  3. IF-MIB::ifInOctets.2 = Counter32: 0
  4. IF-MIB::ifInOctets.3 = Counter32: 240375057
  5. IF-MIB::ifInOctets.4 = Counter32: 220893420
  6. [...]

在Zabbix中使用MIB

这个非常重要.Zabbix进程不会自动生效MIB筛选器的变更,因此每次更改后需要重启启动Zabbix server 和 proxy,例如:

  1. # service zabbix-server restart

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

使用自定义MIB筛选器

每个GNU/Linux发行版都有标准的MIB库,但是一些设备供应商单独为他们的设备提供MIB库。

假设你要使用CISCO-SMI的MIB库。以下的说明将下载并安装:

  1. # wget ftp://ftp.cisco.com/pub/mibs/v2/CISCO-SMI.my -P /tmp
  2. # mkdir -p /usr/local/share/snmp/mibs
  3. # 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
  4. # cp /tmp/CISCO-SMI.my /usr/local/share/snmp/mibs

现在您应该能够使用它了。尝试将对象 ciscoProducts 从MIB库转换为OID:

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

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

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

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

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