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