Network
Monitoring
Lithium has built-in support for monitoring virtually any network device that support SNMP. Basic network interfaces and common SNMP MIB support is included along with built-in support for monitoring routers and switches from 3Com, Cisco, HP and more.
Server
Monitoring
In-depth support is provided for Apple’s Xserve (Intel and G5) and Mac OS X Server products as well as Windows, Linux and Unix servers. Lithium supports the proprietary Apple-specific monitoring protocols required to deliver an unparalleled level of monitoring in-sight for Mac OS X Server and Xserves.
Storage
Monitoring
Promise V-Trak, Apple Xserve RAID and Infortrend-based Storage Devices are all supported out-of-the-box. Lithium’s monitoring support for Apple’s Xserve RAID devices uses Apple’s proprietary monitoring protocols to deliver superior monitoring coverage.
Custom
Monitoring
Now with Lithium 5.0 you can import third-party SNMP MIBs into Lithium using our new Module Builder application to create custom Device Modules to use with Lithium. Building new Device Modules is as simple as loading the SNMP MIBs from the vendor, scanning the device and deciding what data values you want Lithium to monitor.
Application
Monitoring
Monitor the performance and operation of applications and services with Lithium’s extensible, script-based Service Monitoring feature. Scripts for monitoring common services including HTTP, SMTP and IMAP are included. Custom Service Monitoring scripts can be written in any scripting language using a simple XML interface to communicate service status to Lithium.
Enterprise
Integration
New features are being added in Lithium 5.0 to enhance Enterprise Integration with other network monitoring systems. Enterprise customers who prefer to use Lithium but need to have Lithium integrate with an upstream monitoring system will be pleasantly surprised with Lithium 5.0. More information will be made available soon.
Monitoring
Structure
Lithium uses a hierarchical data tree of ‘entities’ to store monitoring data. At the top of the tree is the Customer, the container for all monitoring data related to a single organization or installation. Beneath the Customer are the Sites, which contain Devices. Each Device is a single logical or physical node on your network that Lithium is monitoring (for example a Server, Switch, Router, or Storage Array). Within each Device is a hierarchy of Containers, Objects, Metrics and Triggers. Containers hold groups of Objects of the same type such as Network Interfaces or CPUs and each Object is a unique item of that type. A Metric is a polled or calculated value that relates to the operation of that Object (e.g. Percent Used, Input Packets Per Second, Temperature, etc). Triggers define conditions under which an Incident or fault condition should be raised for that Metric.
Status
Each monitored Entity has an Operational Status of Normal (Green), Warning (Yellow), Impaired (Orange) or Critical (Red). The operational state of an Entity is controlled by the Triggers that are applied to the Metrics being collected or calculated for the device. When a Metric reaches a condition defined by a Trigger, an Incident is raised to report the issue. Triggers can be easily adjusted to suit each device or class of devices in your network.
Triggers
The Device Modules that ships with Lithium includes a default set of Triggers applied to the Objects and Metrics that are specific to that device. These Triggers are user customisable and can be adjusted or disabled to suit your needs. A powerful rule-based system is used to control the application and values used for Triggers which allows for blanket adjustment of a Trigger across multiple devices or fine-grained customization of Triggers for each individual device.
Analysis
Recorded Data
Lithium can record a detailed history of the Metric values that is collects for each monitored device over time. By default, this recording feature is enabled for all Metrics that may be useful for analysis such as CPU Utilization, Memory Usage, Storage Resource Usage, Network Interface Throughput, etc.
Graphing
Being able to visualize this wealth of recorded monitoring data is an awesome tool for analysis, troubleshooting and capacity planning. Lithium Console, Web and Touch all have the ability to display recorded Metric data in graph form. Using Lithium Console you can create your own graphs on-the-fly by dragging and dropping any Metric into the graph window to plot multiple data sources on one graph. These user-defined graphs can be saved as document files to allow quick recall of the data at a later date.
Trends
As it learns more about how the devices in your network are operating over time, Lithium can perform trend analysis that predicts when a given Metric will reach the defined Trigger values. For example, Lithium can perform a predictive trend analysis on a particular Storage Resource and provide a prediction on when that Resource will hit the Warning, Impaired or Critical trigger conditions set for it.
Raw Data
Sometimes, the devil is in the detail. In Lithium Console you can view a table of the individual samples of recorded Metric values over any given time period. These raw data tables can be exported to csv files for external manipulation or data mining exercises.
Alerts
Action Scripts
When an Incident is raised, Lithium can execute an Action Script to fire off built-in Email Alerts or to perform detailed custom altering, escalation and even automated corrective action. Action Scripts can be written in any language supported by the host platform including Perl, Shell script, Python, Ruby, etc.
Lithium ships with Action Scripts to send an Email Alert in the event of an Incident or fault condition occurring. You can customise the content and distribution of the email to suit your needs.
Custom
Some basic scripting knowledge is all you need to write your own custom Action Scripts to perform whatever sort of automated or user-controlled tasks in the event of Lithium raising an Incident. Moving beyond generating alerts, Action Scripts can also be used to automate common corrective actions such as restarting a particular service or providing additional troubleshooting data direct from the affected device. Action Scripts can be configured to execute immediately as soon as a fault is detected; automatically after a given time delay or only when the user commands.
Escalation
While basic Email Alerts are a solid starting point, they can sometimes be overlooked and missed in a busy Inbox. Escalation processes can be built in to custom Action Scripts by setting the script to be re-run at a given time interval. When the script is executed, the number of times it has been run is passed to the script allowing you to build escalation paths into your Action Scripts.
Client / Server
Architecture
Lithium is built on a distributed client/server architecture where the actual monitoring, data collection, recording and reporting is done by Lithium Core. The client applications, Console and Touch connect to Lithium Core using an XML/HTTP protocol. A single instance of Lithium Console or Lithium Touch is able to connect to multiple installations of Lithium Core at once and display montoring data from all the installations through the one client application. This provides immense flexibility for deploying Lithium in large enterprise and service provide environments with multiple locations and/or end customers whilst retaining simplicity for small to medium sized customers.
Core
Lithium Core is the heart of Lithium and perform the data collection, polling, recording and alerting. It runs on a Mac OS X Client or Server host with network access to the devices that will be monitored by Lithium. There’s absolutely no need for any proprietary agents or monitoring daemons to be installed on the devices being monitored by Lithium. All monitoring performed by Lithium Core is done using SNMP or vendor-specific monitoring protocols.
Open Formats
Data Storage
Every byte of data Lithium records as it monitors your network is stored in an open data format that can be exported, manipulated and data mined using freely available open-source tools. Lithium does not lock your data away in any proprietary file formats. The ability to access the raw data Lithium is stock piling about the operation of your entire network opens up a world of possibilities for external data mining, reporting and enterprise integration.
RRDtool
Recorded Metric values are written to disk using the open-source RRDtool file format. Unlike other monitoring systems where the resolution of historical data is lost or truncated over time, Lithium keeps track of every recorded sample from the moment it is activated. Data is stored in a rolling file-per-year and file-per-month data storage format in a very neatly arranged directory structure that follows the Customer, Site, Device, Container, Object and Metric hierarchy of monitored entities.
PostgreSQL
The setup and configuration of a Lithium Core installation is stored in a self-contained instance of the open-source PostgreSQL database used exclusively for Lithium Core. Command line tools for accessing the data contained in this SQL database are included with Lithium. Alternatively, Lithium Core can be configured to use an external installation of PostgreSQL that is managed by the user.
Interaction
Console for Mac OS X
Lithium Console is the Mac OS X native client application for Lithium. Console connects to one or more installations of Lithium Core using an XML/HTTP protocol to access the monitoring data stored in Lithium Core. A single instance of Lithium Console can connect to multiple installations of Lithium Core and display all the monitored devices in a single user interface.
Touch for iPhone / iPod Touch
Lithium Touch is the iPhone or iPod Touch native client application for Lithium. Similar to Console, but designed for use on hand-held device, Touch connects to Lithium Core using the same XML/HTTP protocol with compression to minimize data transfers. Lithium Touch provides access to live monitoring data and recent history anywhere via a Cellular Data or WiFi connection.
Web for Everything Else
Lithium Web is a completely platform independent web-based interface for Lithium that is built-in to Lithium Core. Any installation of Lithium Core can be accessed using Lithium Web to view all monitoring data using a pure-HTML interface.