Project Documentation
Web-Based Network/Server Monitoring System
University of California, Irvine. ICS 243D – Internet Technologies - Spring 2001
Roberto Silveira Silva Filho ID# 85849631
The network and server monitoring tool is composed by a set of daemons (operating system level processes) that collect management information from the hosts in a distributed system. This information is passed to a concentrator server that makes the interface between the browser and the monitoring daemons, formatting this information to the end user. In order to be monitored, each host (server) of the system executes a data collection daemon. Some examples of this information collected include: CPU usage, users logged in the machine, free memory, network connection status and so on.
The project can be executed from the home page: http://www.ics.uci.edu/~rsilvafi/cgi-bin/UnixAdm/menu.htm
The data is collected locally using Unix scripts and commands as sysinfo (shows the general host architecture and operating system information), vmstat (shows the CPU load), finger (shows the users logged in), df (shows the remote filesystem mount points) and so on. Once executed, the output of these scripts are collected, processed and presented in HTML pages.
Periodically, the concentrator agent polls the network administration daemons and collects the performance information. This parameter is configured by the user.
An administration client, using a browser, can query the concentrator and collect the administration information that is presented, using graphics and tables, in a human readable way.
The architecture of the system is depicted below.

Figure 1 General architecture description
The daemons and concentrator serves are be implemented as perl scripts. The program is based mainly in the LWP perl package. For this project, these scritps collect and format the information produces as output from the commands: sysinfo, finger, df and vmstat of the UNIX operating system. The user interface is implemented by a web server that reads HTML pages provided by a CGI script.
The current implementation servers and clients are not multithreaded, and can handle a set of calls sequentially. This is not a big issue for small networks since the script is executed locally, in each host, and only a small piece of text information is sent to the concentrator. Since each command is handled in a stateless session, many commands/sessions can be executed concurrently.
The file server.pl Implements the administration daemons. It is a server that runs in each host to be monitored. It collects the execution output of the scritps, over demand, and returns a formatted HTML output.
The file collectInfo.pl - Represents the concentrator in Figure 1. This Perl CGI script acts s an intermediator between the web client and the data collector servers. It receives requests from the web browser, via CGI protocol, queries the appropriate monitoring servers and present
the information to the user in HTML.
Currently, the UnixAdm tool supports the UNIX commands: finger, vmstat, df and sysinfo. Other commands, however, can be easily integrated in the system by the creation of .pl files with the name of these commands, and the modification of the web client HTML source code.
The sctipts bellow collect and format the information of each UNIX command to be monitored. They perform the preliminary information retrieval and HTML formatting of these commands output.

Figure 2 Form to select and execute a remote monitoring script
Monitoring Commands. This option displays the output of the UNIX shell commands in a HTML friendly format. Select the host to be monitored, the command to be executed, and the update interval after which the command will be repeated. The monitor is started when the " Submit monitoring command" button is pressed.

Figure 3 Form to activate and deactivate the monitoring daemon
Activation/deactivation of service. This form allows the activation (start) and deactivation (kill) of the remote administration daemon in a given host. The remote server is activated through a CGI script ran through a web browser. If the host does not have a web server, the UnidAdm server.pl script must be started manually or as part of the host initialization scripts.

Figure 4 Output of the execution of the finger command in host rodan.ics.uci.edu
Figure 4 presents the output of the command described in the screenshot of Figure 2. The finger command is executed in the host rodan.ics.uci.edu by the server.pl script using the finger.pl wrapper script. The output of the script is sent by the server.pl to the collectInfo.pl script, which frames this information in a HTML page and presents to the user.
The application is completely extensible. The addition of new management scripts can be done by the implementation of wrappers as finger.pl, which executes and formats the output of a command. This operation must be followed by the addition of the new command to the list of commands in the menu.htm page.
The analysis of the performance of a host in time can be implemented if the collected information is stored and combined in history reports. This can be done by the concentrator script.
The collector script must be multithreaded in order to allow the handling of many simultaneous calls.