100 likes | 217 Vues
This project involves the design and initial development of a prototype SNMP (Simple Network Management Protocol) Manager and Agent aimed at effectively monitoring web servers. Utilizing SNMP4J libraries and AdventNet's SNMP Agent Toolkit, the system allows the manager to perform various operations, including setting server parameters and retrieving critical performance metrics. Key functionalities include monitoring server uptime, connections per second, and generating alerts for threshold breaches. The prototype was evaluated through rigorous testing, demonstrating accurate data retrieval and operational effectiveness.
E N D
Design and Initial Development of Prototype Demonstration of an SNMP Manager & Agent for Monitoring Web Server 17 December 2009 Group 1 Developers: Peter Hannon Brian Walshe Researchers: Arnav Aggarwal Paul Gildea PM: Paul Soprovici
Objective • Design an SNMP Manager & Agent for Monitoring Web Server
SNMP Model • Manager • Set • Get • Get Bulk • Agent • Trap • Management Information Base An SNMP-Managed Network Consists of Managed Devices, Agents, and NMSs (http://www.cisco.com/en/US/docs/internetworking/technology/handbook/SNMP.html#wp1022871)
Design • SNMP – used by the manager to communicate with the agent • Manager – SNMP4J Libraries • Agent - AdventNet SNMP Agent Toolkit for Java • Agent to Web Server communication through JMX (Java Management Extensions) calls
Design -2 • What to monitor? • Set: • restart the server • Enable/disable http port • Set connections per second threshold • Get: • Hostname/port • Uptime • Connections per second/ threshold • Heap memory usage • Get bulk • Servlet table • Trap: • Connections per second threshold exceeded notification
Implementation - Manager SET GET GET BULK TRAP
Implementation - Agent • MIB: designed in AdventNet • Agent: generated in AdventNet 1.3.6.1.4.1.1.5.3
Evaluation • Comparison of the values returned by Gets and Get Bulk with JConsole • Sets have the expected results • Threshold and Traps • Use Python to generate multiple requests from urllib import urlopen import time for i in range(1000): urlopen("http://localhost:8080") time.sleep(0.01) If connectionsPerSec > connectionsThreshold TRAP