LupsMON 0.2 (L3DGEWorld Uninterruptible Power Supply Monitoring)

May 8th, 2008
By Michael Allen (ITS / CAIA summer intern, 2007/08)
(website content is borrowed from LCMON)

Overview

LupsMON 0.2 (L3DGEWorld Uninterruptible Power Supply Monitoring) demonstrates the use of combining L3DGEWorld with the Simple Network Monitoring Protocol (SNMP) to provide near real-time visualisation of the condition of a number of Uninterruptible Power Supply (UPS) devices across an enterprise network. LupsMON was initially designed for Swinburne University's Information Technology Services Division to allow them to monitor all their SNMP enabled UPS devices across its five main campuses. The UPS devices are represented within an interactive 3D environment by individual entities (which are represented by a star model) floating in the 3D space. Each entity is uniquely animated to represent different UPS conditions such as output load, battery time remaining, and power source. In a typical scenario, a LupsMON server would provide the virtual world into which a LupsMON client would connect to and view the condition of all the SNMP enabled UPS devices at one time. Multiple LupsMON clients could simultaneously connect to a LupsMON server and independently move around the virtual world.

LupsMON 0.2 is based around the LCMON 1.1 package, which is similar tool used to monitor and visualize the individual nodes on the Swinburne's supercomputer cluster. At the core of both LupsMON and LCMON is L3DGEWorld, a software package which is being developed as a network monitoring and control application based on Open Arena (a game built on the GPL'd Quake III Arena engine). LupsMON demonstrates how L3DGEWorld may be more broadly utilised to create interactive 3D virtual worlds within which arbitrary real-time state information is represented.

Building on Open Arena means that LupsMON (as well as L3DGEWorld and LCMON) are easy to install (and rebuild if desired) under Windows, Mac OSX, FreeBSD and Linux.


Visual appearance, at a glance

The following screenshots capture the view seen by a single user after logging into a LupsMON 0.2 server's virtual environment. When the user first logs into the LupsMON server, they are placed inside the 3D world, floating above a series of five platforms. Each platform logically represents each of the five different geographic locations of Swinburne's five campuses it has across Victoria. Floating slightly above each platform is a cluster of stars; each representing the individual UPS devices. Figure 1 shows a screenshot of LupsMON when a user first logs in the server. Figure 2 shows a screenshot of LupsMON user shooting a entity to retrieve more detailed information on the UPS device.

Different types of conditions existing on each UPS device, causes the correlating entities in the 3D world to change their physical behaviour and appearance. An entity will change colour as a function of its current power source and connectivity status. The spin rate will change in relation to its current percentage output load. Its scale/size represents the remaining battery time. And finally, if any critical errors or alarms occur, this will cause the entities to bounce on the spot, brining attention of the problem to the user. If a user wants more detailed information on the current condition of a UPS, if for instance an alarm has occurred, the user can 'shoot' the entity with their gun. This will bring up a dialog box which will display the IP Address/hostname, the device's location, the current power source, the output load as a percentage, how many minutes the battery has remaining, and if there is an alarm present, the ID and name of the most recent alarm and when it last occurred.

Screen Shot 1
Figure 1:
Viewing all UPS devices across
Swinburne's five campuses
Screen Shot 2
Figure 2:
Snapshot of a user shooting an
entity to retrieve more detailed information

Detailed examples

Additional images and examples of the LupsMON 0.2 user interface can be found here

Functional overview

As illustrated in Figure 3, the major components of a LupsMON 0.2 system are:

  • LupsMON Server
    • An instance of L3DGEWorld 2.2 server running a specific 'map' to represent the LupsMON 0.2 virtual world.
    • snmpPOLL daemon 0.2 - A utility which sends out SNMP 'get' and 'getnext' requests to the UPS devices using a set of OIDs to retrieve their current condition information. snmpPOLL utilizing the Net-SNMP package and API to form and interpret the SNMP packets used to communicate with the UPS devices. snmpPOLL then parses the data obtained from the UPS devices and transmits the relevant metrics to the L3DGEWorld/LupsMON server.
  • LupsMON Client
    • An instance of L3DGEWorld 2.2 client, allow users to interact with the LupsMON virtual world.

As of Feburary 2008, Swinburne's ITS division currently uses the LupsMON package as a means to monitor the current condition of all Swinburne's UPS devices.

Swinburne's ITS runs the snmpPOLL.sh script is looped and executed every 30 seconds in order to send SNMP 'get requests' to the UPS devices. (step 1). The state and condition of all UPS devices are sent back as SNMP responses (step 2), which snmpPOLL then parses (step 3) to extract and format relevant data (such as output load and power source). snmpPOLL then uses a generalised interface to the L3DGEWorld 2.2 engine to update the visual characteristics of the entities/stars which represent the UPS devices in the virtual world (step 4).

Multiple LupsMON clients running on different platforms may connect to the LupsMON server to view the condition of the UPS devices (step 5).

input output diagram
Figure 3:
Input/Output Diagram

For people familiar with Quake III Arena, LupsMON is essentially a custom map running on a modified Quake III Arena game engine. The client and dedicated server executables have both been modified to enable L3DGEWorld 2.2 to communicate with external daemons. As with a normal Quake III Arena game, one or more clients may be connected to a single server, each one rendering a separately controlled view of the virtual environment. Clients may connect and disconnect from the server at any time without disrupting the server's virtual environment, and may do so from where ever there is UDP/IP connectivity to the LupsMON Server.

LupsMON 0.2 may be used to monitor other UPS devices (or even entirely different SNMP enabled devices) by modifying snmpPOLL and optionally redesigning the Quake III Arena 'map' used to represent the virtual environment shown in Figures 1 and 2.


System Requirements

LupsMON 0.2's underlying L3DGEWorld 2.2 core (both client and server sides) has been verified to run on FreeBSD 6.2, Mac OS X 10.4.9, Linux and Windows XP Platforms (with the addition of cygwin). snmpPOLL has only been verified to run on SUSE Linux Enterprise Desktop 10 (SLED 10) (although we believe it should be portable to other platforms).

LupsMON Client Requirements:

  • Video card supporting OpenGL acceleration.
  • libSDL and libOpenAL are required on FreeBSD and Linux.

Dedicated LCMON Server Requirements:

  • Linux
  • BASH (Bourne Again Shell)
  • Net-SNMP
  • Net-SNMP Developer Libraries
  • libSDL and libOpenAL are only required if you run a dedicated server using the ioquake3 binaries. This is because they contain both the client and server components of L3DGEWorld, the ioq3ded binaries contain only the server component which does not require SDL or OpenAL.


Licensing

L3DGEWorld 2.2 and LupsMON 0.2 are copyright (C) 2008, the Centre for Advanced Internet Architectures, Swinburne University of Technology, and distributed under version 2 of the GNU General Public Licence.


Download

Download LupsMON 0.2 package:

  • LupsMON 0.2 for Windows, FreeBSD, Mac OS X, and Linux as bzip2-tar archive (Download - 56.8MB)


Authors and Acknowledgments

  • LupsMON 0.2 was developed by Michael Allen
  • LupsMON 0.2 is based on LCMON 1.0 which was developed by Carl Javier and is also based on L3DGEWorld 2.1. LCMON was developed under the supervision of Grenville Armitage
  • We appreciate the co-operation and input from Rick Upward and Lachlan McDonald from Information Technology Services at Swinburne University.
  • L3DGEWorld 2.2 was developed by Lucas Parry.
  • The snmpPOLL input daemon was developed by Michael Allen.
  • We have received a lot of valuable feedback from Grenville Armitage.
  • Thanks to the OpenArena team - their free textures and artwork on the Quake III Arena code base made it possible for us to distribute LupsMON as a complete package.


References

  1. L.Parry "L3DGEWorld 2.1 Input & Output Specifications" , CAIA Tech Report 070808A, August 2007
  2. C.Javier "Map & Entity Modelling for L3DGEWorld, CAIA Tech Report 070809A, August 2007


Change Log

Changes in LupMON 0.2

  • The user can now specify the community string to be used in snmp authentication. This is set in snmpPOLL.conf
  • Fixed bug in snmpPOLL (snmp.c) which was assigning the community name as the wrong data type.
  • Fixed holes in the snmpups map
  • Included "Blimp" script; a script for a spectator to automatically fly around the map.


Last Updated: Thursday 19-Jun-2008 14:08:39 EST | Developed by: Michael Allen | Authorised by: Grenville Armitage (garmitage@swin.edu.au)