企业特定于公用事业 MIB,可扩大 SNMP 覆盖范围
公用事业 MIB
瞻博网络企业专用实用程序 MIB(其对象 ID 为 {jnxUtilMibRoot 1})可定义计数器、整数和字符串的对象。实用程序 MIB 包含以下五种数据类型中的每一种的表:
-
32 位计数器
-
64 位计数器
-
有符号整数
-
无符号整数
-
八位字节字符串
您可以使用这些容器 MIB 对象来存储 SNMP 操作不支持的数据。您可以使用 CLI 命令或借助 Op 脚本和可调用 CLI 命令的 RPC API 填充这些对象的数据。
每种数据类型都有一个任意 ASCII 名称,该名称在填充数据时定义,以及一个显示上次修改数据实例的时间戳。有关此 MIB 的可下载版本,请参阅 路由策略、防火墙过滤器和流量监管器用户指南。
有关特定于企业的实用程序 MIB 对象的信息,请参阅以下主题:
使用企业特定的公用事业 MIB 扩大 SNMP 覆盖范围
即使 Junos OS 具有内置的性能指标和监控选项,您也可能需要自定义性能指标。为了方便您通过标准监控系统更轻松地监控此类自定义数据,Junos OS 为您提供了企业特定的实用程序 MIB,用于存储此类数据,从而扩展对管理和监控您选择的数据的 SNMP 支持。
您可以通过以下 CLI 命令设置和清除实用程序 MIB 对象值:
-
request snmp utility-mib set instance name object-type <counter | counter 64 | integer | string | unsigned integer> object-value value -
request snmp utility-mib clear instance name object-type <counter | counter 64 | integer | string | unsigned integer>
instance name命令request snmp utility-mib <set | clear>的选项指定数据实例的名称,并且是数据的主要标识符。该object-type <counter | counter 64 | integer | string | unsigned integer>选项允许您指定对象类型,该object-value value选项允许您设置对象的值。
要自动填充实用程序 MIB 数据的过程,可以结合使用事件策略和事件脚本。以下示例显示了事件策略的配置,使其每小时运行show system buffers一次,并通过运行事件脚本 (check-mbufs.slax) 将数据存储show system buffers在实用程序 MIB 对象中。
事件策略配置
要配置事件策略,该策略每小时运行 show system buffers 一次命令并调用 check-mbufs.slax 以将数据存储 show system buffers 到实用程序 MIB 对象中,请在 [edit] 层次结构级别包含以下语句:
event-options {
generate-event {
1-HOUR time-interval 3600;
}
policy MBUFS {
events 1-HOUR;
then {
event-script check-mbufs.slax; # script stored at /var/db/scripts/event/
}
}
event-script {
file check-mbufs.slax;
}
}
check-mbufs.slax 脚本
以下示例显示 check-mbufs.slax 了存储 /var/db/scripts/event/在 下的脚本:
------ script START ------
version 1.0;
ns junos = "http://xml.juniper.net/junos/*/junos";
ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
ns ext = "http://xmlsoft.org/XSLT/namespace";
match / {
<op-script-results>{
var $result = jcs:invoke("get-buffer-informations");
var $rpc = <request-snmp-utility-mib-set> {
<object-type> "integer";
<instance> "current-mbufs";
<object-value> $result/current-mbufs;
}
var $res = jcs:invoke($rpc);
expr jcs:syslog("external.info", $res/..//snmp-utility-mib-results/snmp-utility-mib-result);
}
}
------ script END ------
您可以运行以下命令来检查由于上述示例中显示的事件策略和脚本而存储在实用程序 MIB 中的数据:
user@host> show snmp mib walk jnxUtilData ascii jnxUtilIntegerValue."current-mbufs" = 0 jnxUtilIntegerTime."current-mbufs" = 07 da 05 0c 03 14 2c 00 2d 07 00 user@caramels>
该 show snmp mib walk 命令在 QFabric 系统上不可用,但您可以使用外部 SNMP 客户端应用程序执行此操作。