I’ve been spending some time recently working with the xSNMP Extensions for System Center OpsMgr 2007 from CodePlex to provide monitoring for some Data Domain devices. First off let me state that I’m truly impressed with these packs – especially since these are community written management packs. Huge kudos to anyone who has been involved in developing these! But wait, I’m getting ahead of myself here – how did we get here?
First off, I’m not a network guy – I’m an OpsMgr geek and formerly general Microsoft Infrastructure geek and SNMP is definitely not my primary language. As a result I had to shuffle aside some of my preconceived definitions of terms.
- When I hear “SNMP” – I think this:
- When I hear “MIB” – I think this:
- When I hear “OID” – I think this:
So I may not have been the optimal person to start digging into these types of management packs due to my background, but the good news is that the concepts are not near as daunting now that I’ve spent some time working with them. Back to the original topic of this blog entry – Monitoring a network device (Data Domain in this case) with Operations Manager. There are 3rd party solutions available for monitoring of Data Domain (and other network) devices in OpsMgr – definitely check those out. However in this case I went with codeplex which has a series of management packs called the xSNMP Management Pack suite. These are community written and provide monitoring for a large number of devices including Data Domain devices. Not only are the sealed management packs available for download, but the unsealed versions are also available which makes it possible to alter the functionality of the MP’s to more closely match monitoring environment requirements.
To understand how this Management Pack functions we need to cover some terms and what they actually mean:
Simple Network Management Protocol (SNMP) is an Internet-standard protocol for managing devices on IP networks. (subset from http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol)
A management information base (MIB) is a virtual database used for managing the entities in a communications network. (subset from http://en.wikipedia.org/wiki/Management_information_base)
An object identifier or OID is an identifier used to name an object (compare URN). Structurally, an OID consists of a node in a hierarchically-assigned namespace. (subset from http://en.wikipedia.org/wiki/Object_identifier)
So where do we go from here?
There are several things required before even starting to monitor a device like this in OpsMgr. You gotta know- can’t pass go without the following: (ask your network team for this information)
- IP address of the device
- Community string
- SNMP version to talk with the device on
Really useful information includes:
- MIB file for the device (which will contain the OID to walk the device). Think of OID’s as pointers to specific information on the device. If I use this OID – I get this information. The MIB file tells you what the various OID’s are for the device and what the expected values for these are.
- A MIB Browser (a great free for non-corporate use mib browser is available at http://ireasoning.com/mibbrowser.shtml). A MIB browser provides the ability to query an SNMP device based upon the OID and give you what the actual value is on the device at that point in time. These are critical to debug functionality of the management pack.
So if we have all of this – what next? Beyond importing the management pack and trying it out in my environment how do I customize it to my environment’s requirements?
- Download the xSNMP Extensions for System Center OpsMgr 2007 from CodePlex and also pick up the source code as that’s what really makes it possible to customize the xSNMP functionality to match your environment’s requirements.
- Add the xSNMP management pack(s) to your QA environment, discover the network device, and see what alerts are generated by the management pack. An example of health exploring from our Data Domain specific device is shown below.
- If you find alerts and configurations which you need to alter in the management pack, use the unsealed version and open it in the Authoring console (shown below). This allows you to alter the underlying functionality, save it and re-seal it for your environment.
- In the configuration tab of monitors or rules which are generating alerts you can see the actual OID which is being used (.184.108.40.206.4.1.197220.127.116.11.18.104.22.168.X in the case below) as well as what the expected values are (0 or 3 equal an error for this OID).
- For some of the values in this management pack you can alter their functionality using an override instead of having to update the source management pack and re-compile it.
- If alerts are created for this management pack they display as part of the health model as shown below and the alert context includes both the OID (22.214.171.124.4.1.197126.96.36.199.188.8.131.52 shown below) and the value which was found for the OID (2 shown below).
- If you have alerts in your environment that you want to validate if they are or are not an error you can use your MIB browser to identify what current values are for the device. The appropriate MIB file will tell you not only what the OID’s are but what the acceptable values for the OID’s are. The OID used by the rule/mointor is shown in the alert context (shown below) and an example of an actual value is shown via the iReasoning MIB Browser below that.
By making changes in the authoring console you can more fully customized the management pack to your environments requirements. When you are done altering the management pack in the authoring console, change the revision number of the management pack, save the management pack and re-seal it (documentation on re-sealing is available on the same Codeplex site), and import the updated management pack to your QA environment to re-test the functionality.
Tip: Try the Simulate function in the authoring console to see what is occurring on pieces of your management pack as you are testing them! (Steve Rachui made a great writeup on this functionality in the authoring console).
Summary: The xSNMP community written management packs are extremely powerful and flexible especially since they are available as unsealed and sealed management packs. Using OpsMgr combined with the xSNMP management packs and MIB’s we can bring together a diverse set of features to provide some impressive technology. A technology which I now think of as …
OM-XSNMP-MIB-OID / AKA: VOLTRON
Have a super-fantastic weekend!