+ CMS Features +
++ Problem Specification +
++ Original Problem +
++ This is the original specification given to us when we + started the project. The i-scream central monitoring system + meets this specification, and aims to extend it further. + This is, however, where it all began. +
++ Centralised Machine Monitoring +
++ The Computer Science department 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. +
++ Features +
++ Key Features of The System +
+-
+
- A centrally stored, dynamically reloaded, system wide + configuration system + +
- A totally extendable monitoring system, nothing except + the Host (which generates the data) and the Clients (which + view it) know any details about the data being sent, + allowing data to be modified without changes to the server + architecture. + +
- Central server and reporting tools all Java based for + multi-platform portability + +
- Distribution of core server components over CORBA to + allow appropriate components to run independently and to + allow new components to be written to conform with the + CORBA interfaces. + +
- Use of CORBA to create a hierarchical set of data entry + points to the system allowing the system to handle event + storms and remote office locations. + +
- One location for all system messages, despite being + distributed. + +
- XML data protocol used to make data processing and + analysing easily extendable + +
- A stateless server which can be moved and restarted at + will, while Hosts, Clients, and reporting tools are + unaffected and simply reconnect when the server is + available again. + +
- Simple and open end protocols to allow easy extension + and platform porting of Hosts and Clients. + +
- Self monitoring, as all data queues within the system + can be monitored and raise alerts to warn of event storms + and impending failures (should any occur). + +
- A variety of web based information displays based on + Java/SQL reporting and PHP on-the-fly page generation to + show the latest alerts and data + +
- Large overhead monitor Helpdesk style displays for + latest Alerting information + +
+ An Overview of the i-scream Central Monitoring System +
++ The i-scream system monitors status and performance + information obtained from machines feeding data into it and + then displays this information in a variety of ways. +
++ This data is obtained through the running of small + applications on the reporting machines. These applications + are known as "Hosts". The i-scream system provides a range + of hosts which are designed to be small and lightweight in + their configuration and operation. See the website and + appropriate documentation to locate currently available + Host applications. These hosts are simply told where to + contact the server at which point they are totally + autonomous. They are able to obtain configuration from the + server, detect changes in their configuration, send data + packets (via UDP) containing monitoring information, and + send so called "Heartbeat" packets (via TCP) periodically + to indicate to the server that they are still alive. +
++ It is then fed into the i-scream server. The server then + splits the data two ways. First it places the data in a + database system, typically MySQL based, for later + extraction and processing by the i-scream report generation + tools. It then passes it onto to real-time "Clients" which + handle the data as it enters the system. The system itself + has an internal real-time client called the "Local Client" + which has a series of Monitors running which can analyse + the data. One of these Monitors also feeds the data off to + a file repository, which is updated as new data comes in + for each machine, this data is then read and displayed by + the i-scream web services to provide a web interface to the + data. The system also allows TCP connections by non-local + clients (such as the i-scream supplied Conient), these + applications provide a real-time view of the data as it + flows through the system. +
++ The final section of the system links the Local Client + Monitors to an alerting system. These Monitors can be + configured to detect changes in the data past threshold + levels. When a threshold is breached an alert is raised. + This alert is then escalated as the alert persists through + four live levels, NOTICE, WARNING, CAUTION and CRITICAL. + The alerting system keeps an eye on the level and when a + certain level is reached, certain alerting mechanisms fire + through whatever medium they are configured to send. +
+