Original Problem
This is the original specification we were given when we took
on the project, and it seems an ideal basis for the problem
domain.
Centralised Machine Monitoring
The Computer Science deparment has a number of different machines
running a variety of different operating systems. One of the tasks
of the systems administrators is to make sure that the machines
don't run out of resources. This involves watching processor loads,
available disk space, swap space, etc.
It isn't practicle to monitor a large number of machines by logging
on and running commands such as 'uptime' on the unix machines, or
by using performance monitor for NT servers. Thus this project is
to write monitoring software for each platform supported which
reports resource usage back to one centralized location. System
Administrators would then be able to monitor all machines from this
centralised location.
Once this basic functionality is implemented it could usefully be
expanded to include logging of resource usage to identify longterm
trends/problems, alerter services which can directly contact
sysadmins (or even the general public) to bring attention to problem
areas. Ideally it should be possible to run multiple instances of
the reporting tool (with all instances being updated in realtime)
and to to be able to run the reporting tool as both as stand alone
application and embeded in a web page.
This project will require you to write code for the unix and Win32
APIs using C and knowledge of how the underlying operating systems
manage resources. It will also require some network/distributed
systems code and a GUI front end for the reporting tool. It is
important for students undertaking this project to understand the
importance of writing efficient and small code as the end product
will really be most useful when machines start run out of processing
power/memory/disk.
John Cinnamond (email jc) whose idea this is, will provide technical
support for the project.
|