Handling NMS Performance Data, Part 3

Terry Slattery
Principal Architect

n the last post Handling NMS Performance Data, Part 2, I suggested writing raw performance data directly into the filesystem.  A simple on-disk data structure can make access to the data fast and efficient.  In the NMS database, each device has a device ID.  Create sets of directories to hold data from sets of devices, organized by device ID, then interface name (see picture).


The interface directories would contain the data files.  The data files would be organized according to date range.  Each date file would contain data collected for a period of time, such as a week.  For interfaces that require high polling frequencies, the date range could be selected based on file size and growth rate.  Using interface names instead of the interface ifIndex values would allow easy export of the data to other systems.

The database would contain filenames that reference the stored data. The use of device ID makes it easy to access the data, but a bit more difficult for the administrator to use.  I would create a file in the device directory where additional information about the device would be stored.  Such data would include the device name, the information from the SNMP system group, the list of interfaces with both name and interface ifIndex value, and inventory information such as serial numbers.  While this data replicates what is in the NMS database, it allows easy export of the data to other systems.

A data structure like this makes it easy to access to the data as necessary and optimizes the common case of writing the raw data into storage.  Since the raw data is in the filesystem, it becomes easy to move it to a SAN for long-term storage.  The NMS database can be effiicently updated to reflect the new storage location.

In the occasional case where an administrator requests a view of historical raw data, it is accessible within a reasonable amount of time.  The benefit of using the filesystem is that the access doesn’t impact the operation of the core NMS functions and database access.  In fact, the function of displaying the raw data could be offloaded to a separate CPU or server.

Designing and building a network management system may look easy.  But it is much more than just collecting some data and building an interface that allows the network administrator to view it.  It gets much more dificult as scaling issues are encountered, corner cases crop up, and as we try to do smart things with the collected data.



Re-posted with Permission 

NetCraftsmen would like to acknowledge Infoblox for their permission to re-post this article which originally appeared in the Applied Infrastructure blog under http://www.infoblox.com/en/communities/blogs.html


Leave a Reply


Nick Kelly

Cybersecurity Engineer, Cisco

Nick has over 20 years of experience in Security Operations and Security Sales. He is an avid student of cybersecurity and regularly engages with the Infosec community at events like BSides, RVASec, Derbycon and more. The son of an FBI forensics director, Nick holds a B.S. in Criminal Justice and is one of Cisco’s Fire Jumper Elite members. When he’s not working, he writes cyberpunk and punches aliens on his Playstation.


Virgilio “BONG” dela Cruz Jr.

CCDP, CCNA V, CCNP, Cisco IPS Express Security for AM/EE
Field Solutions Architect, Tech Data

Virgilio “Bong” has sixteen years of professional experience in IT industry from academe, technical and customer support, pre-sales, post sales, project management, training and enablement. He has worked in Cisco Technical Assistance Center (TAC) as a member of the WAN and LAN Switching team. Bong now works for Tech Data as the Field Solutions Architect with a focus on Cisco Security and holds a few Cisco certifications including Fire Jumper Elite.


John Cavanaugh

CCIE #1066, CCDE #20070002, CCAr
Chief Technology Officer, Practice Lead Security Services, NetCraftsmen

John is our CTO and the practice lead for a talented team of consultants focused on designing and delivering scalable and secure infrastructure solutions to customers across multiple industry verticals and technologies. Previously he has held several positions including Executive Director/Chief Architect for Global Network Services at JPMorgan Chase. In that capacity, he led a team managing network architecture and services.  Prior to his role at JPMorgan Chase, John was a Distinguished Engineer at Cisco working across a number of verticals including Higher Education, Finance, Retail, Government, and Health Care.

He is an expert in working with groups to identify business needs, and align technology strategies to enable business strategies, building in agility and scalability to allow for future changes. John is experienced in the architecture and design of highly available, secure, network infrastructure and data centers, and has worked on projects worldwide. He has worked in both the business and regulatory environments for the design and deployment of complex IT infrastructures.