Lithium is a suite of network, server and storage monitoring applications with support for industry standard SNMP and proprietary monitoring protocols including those used by Apple’s Xserve, Xsan and Xserve RAID devices.

Scroll down for step-by-step instructions...

Application Monitoring Tutorial

Lithium can go beyond the hardware and device monitoring to ensure Applications are available by checking that processes are running and services are responding.

Services - Monitored using active or invasive tests to confirm a protocol or application is operating. For example, the HTTP (Web) Service Monitoring Script performs an HTTP GET operation to the monitored device to retrieve a user-configured URL. If the server doesn't respond or an error is returned, an Incident is raised in Lithium.

Processes - Monitored by examining the process table, the list of software currently running on the host and checking for existence of specified process names. Lithium monitors the number of processes present as well as CPU and Memory usage. If the process is not present or is operating outside the user-configured CPU or Memory thresholds then an Incident is raised.

Service Monitoring

A Monitored Service can be defined under a Device to have Lithium regularly check that the service is responding and operational at the protocol level. A Service Script is used to perform the actual checks and tests that are used to confirm the status of the service. The Service Script to be used is selected on a per-Service basis and you can create your own Service Scripts using any scripting language of executable that will run on the Lithium Core host.

Out-of-the-box, Lithium has HTTP/HTTPS, SMTP, IMAP, POP, DNS and AFP Service Scripts plus a generic TCP Service Script for checking that a particular port number is listening for and accepting incoming connections. We wrote these in Perl and you're free to take them, modify them, re-used and re-distribute them to your heart's content. Or, you can write your own Service Scripts using anything that will run on your Lithium Core host. Follow the example of the Service Scripts we provide to get an idea of the XML interaction between script and Lithium Core.

Add a Monitored Service

To add a Monitored Service, click on the '+' button in the bottom-left of the Console window and select "New Monitored Service for Device..." and the desired Device that this service will be associated with. Monitored Services are defined under and bound to individual Devices in Lithium. A single Device can have multiple Monitored Services defined for it. The Add New Monitored Service sheet will be show to configure the Service.

Alternatively, you can select the Device in the left-hand-side of Console and then either control-click on the Device or from the Device menu-bar item add the service using one of the built-in protocol-specific configuration methods for common protocols such as "SMTP Mail Service" for monitoring the operation of an SMTP daemon.

Selecting one of the protocol-specific methods for adding a Monitored Service will display a simplified sheet to configure the options specific to that protocol type. However, when adding through the generic 'Add New Monitored Service' sheet you will first need to select the Service Script to be used and then set the script-specific configuration variables. Any Configurable Variable with a Blue dot next to it is a required field and must have a value present to add the Monitored Service.

Process Monitoring

Hosts running Windows, Linux and Mac OS X Client and Server as well as other UNIX-based operating systems present the list of processes or applications running on the machine via SNMP. Lithium is able to poll this process list using SNMP to examine what processes are running and the CPU and Memory usage for each individual process. You can then define Process Profiles under the Device in Lithium to define groups of processes that you would like Lithium to monitor.

The Process Profile defines a text string that is used to group processes together allowing Lithium to track the maximum-single and aggregate total CPU and Memory usage as well as the number of processes running that match the defined string. For example, if you are monitoring a host running Apache you could create a Process Profile for any processes matching 'httpd'. Lithium will then report the number of httpd processes present and the maximum-single and aggregae CPU and Memory utilisation for all 'httpd' processes. Regular Expressions can also be used to define the Process Profile matching criteria for greater flexibility.

Add a Process Profile

Before creating a Process Profile, ensure that Process List Monitoring is enabled for the Device in Lithium. This can be done by Editing the device and ensuring the 'Monitor Process List' check box is clicked or by clicking on the 'Process Monitoring' drop-down menu at the bottom of the Console window with a Device selected. Enabling Process List monitoring will restart the monitoring of that device. Note that Process Monitoring requires the use of SNMP to monitor the Device and the monitored Device must support the hrSwRun HOST-RESOURCES MIB.

To add a Process Profile, select the Device you wish to monitor the process on and then click on the 'Process Monitoring' drop-down meny at the bottom of the Console window with the device selected. Select 'Add Profile to Monitor Process' in the menu and a sub-menu will be shown allowing you to select 'Other...' to manually specify the Profile match string or select from the list of currently running processes.

The 'Add Process Monitoring Profile' sheet will be displayed for you to enter a description of the Profile and to set or change the process match string. The Description is the human-readable identifier for the Profile that will be shown throughout Lithium. The 'Process Name' field is used to set the match string used to determine which running processes should be monitored under this profile. Any process in the list of running processes polled from the Device with a process name that matches or contains the 'Process Name' string will be grouped under that Profile. Remember that Regular Expressions can also be used for greater flexibility in the process name matching.

Lithium by LithiumCorp Pty Ltd