NetProfiler and SteelScript: Giving 110%!
We all want to know what is happening on our networks. That’s why we use tools like SteelCentral NetProfiler and SteelCentral NetShark. What hosts are communicating with what other hosts? How much traffic are those hosts sending? What ports is that data being sent on? However you look at it, this sort of information is the bread and butter of the network performance monitoring (NPM) product world. Traffic reports, user-defined policies, analytics, and all sorts of other tools are built into the product to let you take advantage of that information.
But what about those times where you need to think a little bit outside the box. What about when you need some information or you need some piece of data or some type of monitoring that the system does not provide baked in? Or what if you want to take some data out of the NPM device and use it to feed or manipulate another system? A solution that provides the bread and butter capabilities and then all this added flexibility on top is critical.
A case in point is a recent interaction I had with some sales folks. They had a customer that was looking to leverage their NetProfiler to alert them when specific DHCP subnets might be running out of address space. While there are definitely reports that can give you information like the number of active connections or average bytes per second for traffic on a DHCP range, getting the specific number of active hosts is a little bit trickier. Once you have this information, you then need to be able to figure out if the subnet is getting full and if it is, generate an alert.
This is where the wonders of Riverbed SteelScript comes into play. By leveraging the advanced API reporting of the Riverbed REST API and the ease of development and use of Python-based SteelScript it is trivial to put together a script for monitoring DHCP subnet usage in NetProfiler.
REST API’s use a consistent, easy-to-understand approach to getting information. SteelScript puts a Python wrapper on top of those API’s and makes it even easier—handling things such as authentication, parsing data, JSON conversion, etc. for you. The result is that in less than a day, I put together a script (take a look here for more details) that uses SteelScript to call REST API’s to query a NetProfiler and find information on DHCP range usage.
That information could then be used to do things like:
- Generate an e-mail, SNMP, syslog, ArcSight, or other alert informing an administrator that a range is reaching saturation
- Trigger an automatic response on a DHCP server to add or expand a subnet providing more address space
- Drill further into the information and query the NetProfiler against each address in the range to see if the host is actually in use, how much traffic it is generating, where it is connected, etc.
Clearly the NetProfiler is not a full blown (or even partially inflated) IP address management (IPAM) solution (though if you really wanted to you could build one with SteelScript and Python). However it provides access to information that is not available in many other places and can be incredibly useful in a broad range of circumstances. Even though there was no specific report or integration for IPAM solutions it took a few hours to put together some basic code that would query a NetProfiler and provide real, useful, accurate information that could be used for decisions elsewhere.