3 MIB文件
介绍
MIB 是管理信息库(Management Information Base)的缩写。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 : 的行。
# 由于许可原因,snmp 软件包不包含 MIB 文件,默认情况下
# MIB 的加载已被禁用。如果你已添加 MIB 文件,可以通过
# 注释掉以下行来重新启用它们的加载。
mibs :
测试MIB文件
可以使用 snmpwalk 工具测试 SNMP MIB。如果尚未安装该工具,请按照以下说明操作。
在基于Debian的系统上:
`apt install snmp`
在基于 RedHat 的系统上:
`dnf install net-snmp-utils`
然后,当您query a时,以下命令不得给出错误 网络设备:
$ 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 进程不会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 文件。