Enterprise Specific Utility MIB to Enhance SNMP Coverage
Utility MIB
The Juniper Networks enterprise-specific Utility MIB, whose object ID is {jnxUtilMibRoot 1}, defines objects for counters, integers, and strings. The Utility MIB contains one table for each of the following five data types:
32-bit counters
64-bit counters
Signed integers
Unsigned integers
Octet strings
You can use these containers MIB objects to store the data that are not supported for SNMP operations. You can populate data for these objects either by using CLI commands or with the help of Op scripts and an RPC API that can invoke the CLI commands.
Each data type has an arbitrary ASCII name, which is defined when the data is populated, and a timestamp that shows the last time when the data instance was modified. For a downloadable version of this MIB, see Routing Policies, Firewall Filters, and Traffic Policers User Guide.
For information about the enterprise-specific Utility MIB objects, see the following topics:
Use the Enterprise-Specific Utility MIB to Enhance SNMP Coverage
You might need to have customized performance metrics even though the Junos OS has built-in performance metrics and monitoring options. To make it easier for you to monitor such customized data through a standard monitoring system, the Junos OS provides you with an enterprise-specific Utility MIB that can store such data and thus extend SNMP support for managing and monitoring the data of your choice.
The following CLI commands enable you to set and clear Utility MIB object values:
-
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>
The instance name
option of the request
snmp utility-mib <set | clear>
command specifies the name of the
data instance and is the main identifier of the data. The object-type
<counter | counter 64 | integer | string | unsigned integer>
option enables you to specify the object type, and the object-value
value
option enables you to set the value of the
object.
To automate the process of populating Utility MIB data, you can use a combination of
an event policy and event script. The following examples show the configuration for
an event policy to run show system buffers
every hour and to store
the show system buffers
data in Utility MIB objects by running an
event script (check-mbufs.slax
).
Event Policy Configuration
To configure an event policy that runs the show system buffers
command every hour and invokes check-mbufs.slax
to store the
show system buffers
data into Utility MIB objects, include the
following statements at the [edit
] hierarchy level:
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 Script
The following example shows the check-mbufs.slax
script that is
stored under /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 ------
You can run the following command to check the data stored in the Utility MIB as a result of the event policy and script shown in the preceding examples:
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>
The show snmp mib walk
command is not available on the QFabric
system, but you can use external SNMP client applications to perform this
operation.