I am trying to elaborate you in what ever brief it can be done via this medium of mail. Don't mind and please feel free to raise your concerns either out of your curiosity or seeking more.. :)-
In short about SNMP(Simple Network Management Protocol), i can say it is a industry standard for network monitoring and management, very old protocol and and has been widely in use till now for the same. It forms the basic technology for network management in all leading nterprise class network monitoring and network management products of vendors like Cisco, HP etc. Its has risen in its versions starting from v1, v2c and v3 running currently i.e more secure as security has been always a concern for earlier versions because of clear text community string i.e a type of password for authentication with the agents.
Its a UDP based application layer protocol and it has a simple architecture of a central management station called manager which asks for information from the agents running on different network elements like switches, routers, printers, workstations or any snmp enabled devices.
Agent is nothing but a continuously running daemon application which maintains the data on the device in a format called MIB(Management Information Base) current version MIB-II, which is a tree like hierarchical structure of information maintained on every snmp enabled device and it is implemented on the device following the SMI(Structure of Mangement Information) notation.
Every parameter on a device in represented by an OID(Object identifier) in MIB tree of the device. For example like your cpu usage has also one oid. so you can get the cpu usage of you localhost if snmp agent is running on your linux machine like this.
snmpget -v2c -c public localhost/127.0.0.1 1.3.6.1.4.1.2021.10.1.3.3
So the central manger asks for the specific data from the agents running on all the snmp enabled network devices.
Your idea of a developing a simple network monitoring application can be like this, you need to have a central monitoring server that will be running continuously and polling devices for specific data like cpu usage, memory usage, disk space as basic things...other attributes like interface listing, seeing routing tables etc..as some advanced attributes, either synchronously or synchronously in a fixed time interval. If you want to keep the statistics for a long duration and older statistics also go for a database like round robin database called rrd(RRDTool) for storing a long time data and generating beautiful graphs for different parameters.
There is one open source libraray called net-snmp for linux platform which provides you with the snmp agent, net-snmp c library to implement simple snmp application, snmp trap receiver, and snmp command line tools.
Please follow the links which i have included here to read in details about the same.
http://www.net-snmp.org/
http://www.snmplink.org/
http://www.net-snmp.org/wiki/index.php/Tutorials
There are also some other fundas like snmp traps and others which you can read as per your interest and requirement.
Thanks..
No comments:
Post a Comment
Thank you