Examining the GroundWork open source monitoring tool

Earth Mover


GroundWork is a user-friendly front-end for the Nagios monitoring tool.

By James Mohr

Vicente Barceló Varona, Fotolia

When I'm setting up a Nagios system [1], or each time I have a new customer, I whip out a quick script to add the hosts and services to the configuration files. A scripting approach is fast and easy for an experienced admin who would rather work with vi than click around inside a GUI. However, if I only need to make a small change, it can be annoying to have to log in to the machine and then maneuver through the directories to tweak a single configuration file. In cases like this, a GUI comes in handy, particularly when the GUI is a web browser.

Several projects have attempted to create a GUI for Nagios, with varying levels of success. Unfortunately, some of these projects have run out of steam and failed to keep current with changes to Nagios. One Nagios front-end that is still in active development is GroundWork [2]. GroundWork is both a company and an open source software project. As a commercial enterprise, GroundWork naturally wants to make money. They provide two commercial versions of their product in addition to an open source version, which is available for download from SourceForge [3].

The cautious reader might be skeptical of an open source project that is also available as a commercial product because the free version is sometimes just a teaser for the commercial version and provides very little useful functionality. In this case, however, I can honestly say that the open source version of GroundWork Monitor offers all of the necessary functionality to configure and manage your Nagios installation.

At the core of the system is GroundWork's Guava application framework, which supports AJAX-enabled user interaction.

AJAX support means pages are updated without the need to explicitly reload them. Guava also provides the presentation aspects of the system, as well as features related to user security. (GroundWork Guava is itself an open source project available through SourceForge [4].)

The current version of GroundWork is based on Nagios 2.5. In addition to providing a user interface, GroundWork comes with a MySQL database for event information, as opposed to the text-file solution provided with Nagios by default. Also included with GroundWork is the Nagios plugins package, which is normally downloaded separately.

Easy Install

Various GroundWork documentation sources list different, often seemingly contradictory, minimum hardware requirements. For example, one place says the open source version requires just a single 2.8 GHz CPU, and another source specifies that you need two. Naturally, how much RAM and how many CPUs you need depend on the number of devices you monitor and how often. However, it would have been nice to have more consistent guidelines.

The open source version of GroundWork is available from SourceForge [3] as a normal RPM package, a bootable ISO CD image, or a VMware "appliance." I downloaded the open source version 5.0.5 of both the ISO image and the RPM packages. While booting the CD, I was prompted for network configuration information and was quickly working with GroundWork.

I naturally wanted to see what the RPM version was like so I tried to install it on SUSE 10.2. This reminded me to check before I installed and consider the supported platforms. Currently, the list of supported operating systems for all versions is limited to Red Hat and SUSE Enterprise, with only the professional GroundWork supporting the 64-bit versions. Also supported is the 32-bit version of CentOS 4.

My installation seemed to go fine, but since I did not have an enterprise version of SUSE, installation failed when I tried to start GroundWork because of various library problems.

I found it bothersome that even the open source version requires a commercial product, or at least it is officially supported on a single non-commercial distribution.

GroundWork installs its own version of Apache. If you have an existing Apache server running, it will be stopped and disabled by GroundWork (although nothing is actually removed). The documentation says, "Any content served will be served by the GroundWork version of Apache."

The process is not automatic and you will end up having to do some configuration on your own to make your content available.

Also, you cannot update Apache using the normal means because any update mechanism will update to the original Apache installation. To avoid these complications, the documentation suggests you install GroundWork on a standalone system.

Up and Running

When I finally got in, the product displayed a very professional appearance. The menu structure was logical, and movement through the menus was easy - especially for users who are experienced with Nagios.

You can download an evaluation guide that leads you step-by-step through many of the basic GroundWork configurations. The evaluation guide assumes very little background, and I encountered no problems getting the product installed and working with the help of the guide.

You'll need a working version of MySQL. The evaluation guide includes some basic information on connecting to MySQL. When you log in for the first time, you'll see an animation on the start page that points you to Configuration EZ, which gives you an easy way to quickly add hosts to your network via auto discovery. You can then assign nodes to existing node groups or leave them "unassigned."

Configuration EZ blocks out the more detailed settings and presents you with just the basic configuration options. With a few exceptions, you are limited to assigning existing configuration settings (such as service checks) to new hosts. For networks where you are simply adding new nodes or other devices and not adding new service or monitors, this watered down EZ interface is very useful.

Although configuring fairly simple monitoring is very easy with GroundWork, you need to be aware that the underlying technology is still Nagios. If you are experienced with Nagios, you'll pick up GroundWork very quicky. If you are a Nagios beginner, you'll need to spend some time getting familiar with Nagios before you will be able to use GroundWork efficiently.

GroundWork operates through a web-browser interface. The left frame of the GroundWork service window is the navigation menu, and the right frame is the work area (Figure 1).

Figure 1: The GroundWork service definition window.

At the top of the window is a navigation bar (referred to as a menu in many places). The navigation bar changes depending on where you are in the system. See the "Browsers" box for information on GroundWork-supported browsers.

Each time you log into the system, you start on the GroundWork home page identified by "Home" in the upper left-hand corner next to the GroundWork logo. Clicking the GroundWork logo gives you a drop-down menu for the main areas, for example, Administration or Configuration. When you select an item, the left-hand navigation panel changes accordingly.

To get data into your GroundWork system, you can either start fresh or load an existing Nagios installation. On my test machine I had not yet installed Nagios, so I chose a fresh install. At work, I loaded GroundWork onto an existing Nagios installation.

I found no problems when loading the existing configuration files. Although the version of Groundwork I tested is based on Nagios 2.5, and the existing Nagios installation was also 2.5, you can still upgrade Nagios 1.x files directly from the interface.

If any directives are missing from Nagios 2.x, the "pre-flight check" will report this, and you can add the directives as needed from the GUI.

If you decide to load an existing Nagios installation, you can update the current GroundWork configuration with objects from your Nagios configuration or clear (or purge) the Nagios-related information in the GroundWork database, replacing everything in your Nagios configuration files.

When adding nodes via auto discovery, you can choose an entire network or simply a block of IP addresses. Since I have a relatively small test network, I configured GroundWork to scan only the first 50 IP addresses, which it did in less than a minute.

Each node GroundWork finds is listed in the GUI; you can then select the nodes and add them to the system (or not). If necessary, you can load nodes from an external file rather than going through auto discovery.

When adding nodes, I discovered one of the many annoyances with the GUI. The list of nodes is not automatically updated. Instead, it seems you have to collapse the list of nodes and open it up again before they appear.

GroundWork touts the use of AJAX to provide automatic refresh of pages without user interaction, so it is disappointing that this does not work everywhere. (Perhaps this feature only works with the latest version of Firefox?)

After I ran the auto discovery, all of the Linux machines were correctly identified. Although GroundWork recognized the Windows workstation as being up, GroundWork could not identify the operating system, and so it ended up with only the group "Linux Servers." However, you can add host groups literally in just a few seconds, so this is not really a major problem.

Browsers

GroundWork is limited in the browsers it supports. As of this writing, GroundWork only supports Internet Explorer 6 and 7, plus Firefox 1.5 and 2. Konqueror is not supported; in fact, loading the GroundWork start page actually causes Konqueror to crash. Unfortunately, I was happy with an older version of Firefox and did not yet feel the need to upgrade. However, I could not even access the start page with the older version. I did manage to quickly figure out how to get to the login screen, but I still decided to upgrade to Firefox 1.5 to avoid any other problems.

Administration

GroundWork is designed for easy administration. You can create users groups, which give you access to the system. Privileges are then determined by roles. For each role, you define subscriptions. Although roles are additive, they define only the applications (portions of the system) that the user can access. For instance, you can give a role access to the Nagios interface, allowing users to see the status of hosts and services but not allowing them to make changes.

In the administration section, you can install packages and, in some cases, you can configure them. Packages can be added to the system through the Wrappit menu item. This package-management feature allows you to integrate an existing web application into the GroundWork menu structure.

The GroundWork Configuration menu gives you access to all of the configuration you normally would do through Nagios. The primary Nagios configuration settings are accessed through the menubar (Figure 1).

The Control option represents the overall Nagios configuration. Here you define various directories, the user under which GroundWork runs, and the default behavior of Nagios. The Control settings are the values you find in the main Nagios configuration file (typically nagios.cfg). Because there are so many options, GroundWork splits them across multiple screens, and you have to save each screen before moving on to the next one. That means if there is something you want to access on the last screen, you have to first load and save each of the previous screens.

The Tools option allows you to delete hosts or services based on wild cards. You are not able to define your own wild card. Instead, GroundWork come up with a list of patterns that appear to cover every possible starting combination.

In addition to offering its own set of configuration dialogs, GroundWork provides access to the traditional Nagios interface (Figure 2). Here you can view services, schedule downtime, disable checks, and do everything else you can do with the Nagios GUI.

Figure 2: The GroundWork Nagios interface.

Useful, but Imperfect

You definitely cannot beat the cost of the open source GroundWork. Even without the extra bells and whistles in the commercial version, GroundWork's ease of use deserves a few kudos.

Unfortunately, GroundWork did not behave as I expected in a number of places. I ran into a number of situations in which GroundWork simply did not do anything when making selections. For example, when I clicked the links on the toolbar or selected values from dropdown menus, the program just sat there. However, refreshing the page or moving to a different area of the program corrected the problem.

Groundwork seems to have trouble working with multiple tabs in Firefox. Apparently, it will store the page in the last tab you open, and if you click to refresh in one of the previous tabs, it loads the newest page instead of the one you were working with.

Despite being open source, GroundWork is very closed in terms of the platforms it supports. While I understand you really cannot expect the product to directly support every possible Linux distribution, I am bothered by these limitations, especially when the vendor's website claims the "widest range of support for operating systems," when this is not really the case.

I also think that GroundWork is trying too hard to be "cool" and appeal to high-level managers who, in all likelihood, are not familiar with the technical aspects of Nagios or system monitoring. The product website and the documentation is filled with marketing hyperbole that distracts from the real functionality of the product. Still, the open source version of GroundWork is a solid product that I would recommend for anyone running Nagios.

INFO
[1] Nagios: http://www.nagios.org
[2] GroundWork Monitor Open Source: http://www.groundworkopensource.com
[3] GroundWork download: http://www.groundworkopensource.com/downloads/full_download.html
[4] GroundWork Guava: http://guava.sourceforge.net/