Question

I am thinking of writing a simple app(as of now) that discovers a CISCO/JUNIPER router and store the performance metrics of the router in the database using only snmp data available in the device.

Going forward, Final goal is to monitor performance metrics status of 10000 devices of different types(MPLS/switch/Gateway) at a time, which i can think of this later.

I can manage to self learn on how to discover the device(router) and its components using snmp protocol and other protocols(if required)

I also work on current NMS product that uses Berkeley DB from database side, But i felt that analysing the DB modelling strategy of current product would not make me learn DB modelling

My question: 1)

How do i think of modelling(Data representation) the database so that i can store these performance metrics in the database? Like relations/associations/models/model-type jargon. I need guidance from some resource or book. I know that domain knowledge of networking is required for this, which am working(CCNA videos) in parallel.

2)

What type of database do i need to select(Relational/key-value/column-based)?

Was it helpful?

Solution

It is fairly easy to learn basic data modeling, and with that you can use any relational database you like (or even apply the techniques to NoSQL or Document databases too). I wrote a series of articles for WebAndPHP Magazine last year that you can refer to, these cover the basics and should get you started. Here is a preview of one of the articles you can start with, there are others available if you search the site:

http://webandphp.com/DataModelling101

This is a PDF magazine, I think you can still download old issues (you need to register).

There are many other sources on the Web as well, if you search for "entity relationship modeling tutorial" you will find lots of good content.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top