Sysview: Systems Monitor
The system monitor is written in java and uses the central database to store information about the current state of the system, including file sizes and arrival times, existance and runtime of processes, network pingability, available disk space and host load. The monitor runs on one system and can track other systems using RMI (Remote Method Invocation) calls. The objects to monitor are listed in XML configuration files, including name of process or path to dataset, expected values (file size and update frequency, maximum allowable host load or disk space usage, etc) name of host, and gateway and firewall information if applicable to reach remote hosts.
The monitor runs every 15 minutes to gather information about the state of the monitored objects, and calculates whether an object is normal, in a warning state or alert (critical) state. The monitor will send email based upon selected thresholds, and also can be displayed visually through Sysview;. Users may subscribe to the monitor by selecting which objects to monitor, setting thresholds of warning and alert values, and selecting when and how often to send email based on a monitored object's state.
The monitor keeps the last 24 hours of data on system states in its active table, and keeps an archive of the history of system states. Future plans include allowing queries of the archive history to see trends over time (reliability), allow the users to configure their options from a graphical user interface, and to incorporate artificial intellingence to allow the monitor to "learn" the system to monitor (ie, to adapt if file sizes or frequency changes, if datasets are added or dropped, etc)
Sysview is a java application which runs with the monitor to show a visual image of system health, using a diagram to display monitored objects. Diagrams may include textual components to describe the monitored objects, arrows to show dependencies, and subdiagrams to group like monitored objects. Given a set of configurations, Sysview translates the current state of a monitored object (file size or arrival time, existence or runtime of a process, network pingability, disk space or host load) into green, yellow, or red depending upon the given warning and alert threshholds. A monitored object in a critical (red) state causes the parent diagram to show red if its priority is high; if its priority is set to be low, then the parent diagram will show a warning (yellow) state.
The monitor updates its database tables every 15 minutes, and Sysview queries these tables every six minutes. In addition, Sysview may be configured to periodically dump its state to the web, so that the system may be monitored remotely. Sysview (as well as the monitor) is configured via XML files to allow for the greatest flexibility.
Future enhancements include customizing the Sysview view for each user and allowing the user to configure monitor threshholds and email options from the user interface. In addition, there are plans to generate graphs of monitored object performance over time (reliability) and to incorporate artificial intelligence to allow Sysview to "learn" the items that are monitored.