The ResNet Monitor started life in november/december of 1999 as I was asked to set up a system to handle 2000 residents adding their machines to the new UC Riverside Residential Hall Network that was scheduled to go online next quarter (January 2000).
Using http://www.isc.org dhcp server, a series of perl scripts and a mysql database, I was able to create a system that students could easily self register their computers and get them running on the network with a minimal strain on our limited staff. These primitive scripts were to become the basis of rnm.
Once we had people registered a need arose to track them, and figure out what they were doing, who was not using dhcp, who had which ip, who was eating bandwidth, who had multiple machines plugged in, etc.
I launched a system of loosely nit perl scripts running on a single server
to use SNMP and poll all of the switches, populating yet another mysql
database [actually the same databse, different table] with information from
the switches. Originally called uhsm
, or UCR Housing SNMP Managment,
this project laid the foundations of data collection, and provided the
inital database structure.
Of course, this data could only be operated on by me, or someone else with a decent knowledge of SQL, and access to the server. As usefull as the data was, without an easy to use interface, it became obvious that it would just sit there gathering dust. Thus, the web front end came to life.
The ResNet Monitor Web front end, rnmw
, is that web front end. Kinda
lame name, but hey, I'm not very imaginative when it comes to names. It
works though, and that's what matters.
Hopefully you've already spent some time looking at rnm, and gotten a feel
for it. Basically, there are three basic parts. A snmp agenent: rnmd
,
a master daemon: rnmdm
, and a user interface: rnmw
. We'll try to
concern ourselves primarily with the development of rnmw
and it's
assiociated mantra. Of course, because these are all interconnected, we may
spend some superflous time dealing with rnmd
and rnmdm
.
Ok, lets dive straight into rnmw. There are a few parts of rnmw. These are the data display functions, the authentication functions, the common functions, the help system, and the plugable module system.
The data display functions are a series of functions that take care of displaying commonly used data types throughout rnmw, and displaying common data sets that are used repeatedly throughout rnmw. They are also used to check field level authorization, and apply formating when necessary.
These are the functions that you should be calling if you write a page to display data in rnmw. If you need a new type of data that you feel will be present often in rnmw, you should probably add a function to this group. See section Authentication
The authentication functions provide password authentication to rnmw and access controls. They allow pages to deny content based on users, or even deny access to the entire page. We have found this usefull, because not everyone who has access to RNM needs or should have access to all of the data, especially when sensitive information such as SSN's or e-mails are collected. We also have found it usefull to do this so supervisors are made aware of any information that is used in investigations, etc. See section Writing Modules
The common functions are a group of functions that started life in uhsm, and have been bridged over to rnmw. Most of them I have found extreeemly useful, cause I hate writing and rewriting lame code. Stuff to interface with sql databases, header definitions, the user interface module loader, almost everything that is really cool is located in here. Likewise, if you are programming web interfaces for other projects, you might want to steal some of this code. (I stole the beginnings from another package, but have changed almost every line of code except for some of the function names and variable definitions) @xref{Common Functions}.
This document was generated on 12 July 2000 using texi2html 1.56k.