Saturday, October 24, 2009

SNMT >> Simple Network Monitoring Tool


Simple Network Monitoring Tool or SNMT is a real time monitoring tool. The tool has built-in alert capabilities whenever an incident happens. The grouping functionality enables the restriction of view based on user. SNMT monitors IP devices, Network links, URLs/ Web addresses.

Developed by: Thomas M Sebastian & Prashant Sahu

Versions are : SNMT Lite /SNMT TURBO

We started with the design>> Product Design. So where to start ? We started with internet only. Searches, testing some related tools. But we didn’t find anything useful or that can help us. Then we discussed on what could be the design like. Since Prashant left the design to me , I started working on it. The key factors that I considered during the Product design are

Re-Usability >> the end user who is using this should get the advantage of reusability. He should be able to customize the product.

Technology >> Main obstacle in each product is the technology we use. We aimed at technologies that are widely accepted across the globe & which are readily available

Cost effective >> End user can use this Tool with its present infrastructure. And usage of open source technologies or suites will help in achieving those.

Technology >> we were sure of one thing >> Java , we were equipped with Java.

Initial start or spark was done by Mr Prashant with a simple java program which checked the status of devices by pinging them. It was run from command prompt. We were waiting for this initial signal. Then ideas piled up.

Then we made some general design. I started with the Web interface, a domain which I am familiar with and able to do magic. The huge task was to convert the small java program into a jsp page . After several trials I succeeded and refreshment of Jsp page resulted in updation of the device status and database. However this increased the load on the web interface, which also resulted in a substantial delay in refreshing the page. So we separated the Web layer GUI and the java programs .

Technologies/Functionalities Used

· Java

· JavaScript

· Java Applets

· JSP

· HTML

· Demons

· SQL / queries

· HTML

· Servlets

Challenge areas

Geographical Challenges

It was a remote development and myself and Prashant was working at different time zones

Integration

Another Heavy task was the integration. From India I got prototypes or skeletons. Then I had to add flesh to it by integrating with the GUI. We had faced problems like ,

While our first demo , I was having the updated pages and Prashant was not having it, which caused lots of problems

While our final demo , Prashant made modification to DB and I had to make changes just hours before we had the demo. We were under pressure.

Integration of modules even though, we were in different time zones, was done perfectly at last. Achieving the objective in time.

Maps

Maps were one of the toughest & critical parts of the development process. We had a tough time in finding the right technology to generate one. Finally we relied on Java itself, this time Java Applets. Prashant should be appreciated for the work/effort he has done to generate those .The map generation and its auto refresh so that the current status is displayed everytime was tough challenge and was accomplished by Prashant. After creating a map , we had a great level of satisfaction. Seeing the map , WOW

Striking Balance

JSP Conversion

Another hurdle was the conversion of html to jsp inorder to include the session and thejavaprograms . Since all the jsp [70+] were hard coded, even if there is one small change , I have to do it in all consecutive pages. Man my hands are moving fast faster fastest , based on the number of lines , words tags , Mind blowing

Demons

Demons, which adds the main functionality also gave tough time , as we had to incorporate all the logic of the history, messages, status update etc. URL monitoring is an idea that Prashant has put forward. This was added as an enhancement to the tool.

Multiple SQL Queries

One more pain area was multiple sql queries, one within another. In between connections close , error in insert query, update query, column not found, sql general error. This queries made my brains heating up . But the good thing is we were determined to overcome those and come with output. Daily night 3am-4am was the sleeping time and wake up at 640am.

Generating Messages

Generation of Messages wasn’t that difficult, but the trick/logic used was something brain storming. We also have the option to generate message continuously. Second option being generation if there is a change in the status [UP to Down] or [Down to UP]. Most important part was creation of messages according to user. I came up with the idea of teaming/ grouping users and resources .

History/ Reports

Storing the History helped in reducing the task of complexity in generation of messages. This was where I applied some tricky logic. History table will contain all the data related to the device status. However initially, history table was designed to generate messages continuously. Since it will increase the db size, we updated the history browser whenever there is a status change.

The challenge was to update the table depending on the previous entry. For that, it all was dependent on the status from demons. And I designed the table differently so that in one single row or record the uptime and downtime is recorded. If that record is complete then only a new record will be added for that resource. What I have done is I have read all the entries in table and then took the last update regarding that particular device/resource. Calculated whether the last updated status is down or up. Based on that the new entry was done.

Personalized Views

These views enabled the user to view only the devices/resources allocated only to him. For this we had to change the db so many times. I came up with the idea of Grouping. A device/resource will be added to a particular group. The user will be added to that group. You can create and associate more groups with one user. So a user can view resources in those groups.

Single Page for multiple tasks

Initially I used so multiple pages to perform multiple tasks. Later on, as got hands on, I used a single jsp page to perform four tasks [eg: deletion, modify, add, reset]

The architecture of the tool



Logically the tool can be seen as three parts.

GUI-Web Interface

Demons/Background programs

Database

GUI-Web Interface >> The Interface between the tool and user. GUI is so simplified so that almost all actions can be performed without going to the codes or storage. Also Web GUI is so powerful to provide you the network MAPs along with current status.

Demons/Background programs >> Background programs are the heart of the tool. This Demons/program make the main functionality of the tool. The status of devices/links/urls/snmp etc

Database >> SNMT data is stored in this database. In fraction of seconds so many write and read operations are performed to manipulate data.

Capabilities

The Main capability include

Monitoring

Network Devices/ IP Devices >> The SNMT can monitor the devices especially those which are SNMP enabled. It also can monitor any IP Device.

Links >> Links are also included in SNMT, which are critical part of the organisation

URLs >> Web pages or web addresses which are accessed by users daily and which are critical can be monitored using SNMT.

SNMP Monitoring

SNMP Monitoring can be performed in SNMT. Through this feature the values of a device are accessed and polled in an interval time to time. IP Ranges For device creation/addition , SNMT allows the user usage of IP ranges. The devices will be created with corresponding values.

File upload

SNMT has been developed keeping in mind the ease to use capability. So we have added a file upload option. Through this option end user can create devices which by uploading the file he has formatted according to SNMT . End user has the freedom to use iprange in file upload.

Network Maps

The entire devices and its status can be viewed in a single network map. The map also displays links and its status. The change in status is shown by colour changes. So a map can cater major requirements of instant monitoring of your infrastructure and allow you to make decisions quickly.

Grouping

This feature has been added in SNMT so as to define visibility area for a user, Depending on grouping the user will be entitled to view the devices and links etc.

Historical Data Collection

The events of device down device up are stored in the database. This will help in generating reports.

Reports

Reports which can be generated from the data we have stored in SNMT DB, Email SNMT can be configured to send emails to the users on alerts.

Database Management

Database management is another added advantage where in we can clean up entire SNMT database. We can also clean specific databases.

User Management

Administrator can create the user. User can have two permissions, user and administrator.

Group Management

Admin can create the group. Groups can be matched/mapped to multiple users. Depending on the mapped groups, a user can see the devices, links etc

Messages/Alerts Inbox

SNMT will generate messages whenever there is a change in status of the devices managed . And this inbox will be refreshed automatically. Administrator can view both the inbox [Acknowledged and Unacknowledged] Personalised Inbox Using the grouping property of SNMT, a use can view only specific messages, which are generated by devices, links, URL which are assigned to that user

User Specific Visibility

With the help of grouping, user can only view the devices, links, messages and urls etc which are assigned to him. Likewise we can assign multiple devices urls links to a user.

Major Highlights

Network graphs


SNMT gives you a better insight to your networks with its maps. Through SNMT maps you can View the device View links View the status of the Devices, Links Drag the nodes as you like

Messages/ Alerts



SNMT has an inbuilt inbox to store the alerts/messages that you will be obtaining. SNMT also has the capability to send emails. Even if don’t have the email , SNMT built in inbox will help you to keep the messages. The most important part is that these inboxes are personalised according to user. User can only view the messages that administrator assigns. Administrator can view all messages irrespective of the groups assigned to him

SNMP data



SNMT also comes with the add-on feature of SNMP polling. For this we have loaded some generic mibs. How ever you can select the oids which you want to use for a particular device. SNMT also allows you to use community strings for polling . Administrator can view the snmp polling results. SNMP polling results contain the neighbouring node and its status, bandwidth etc