HOBBIT

Section: Environments, Tables, and Troff Macros (7)
Updated: Version Exp: 11 Oct 2005
Index Return to Main Contents
 

NAME

Hobbit - introduction to the Hobbit Monitor

 

OVERVIEW

Hobbit - previously called "The bbgen toolkit" - is a tool for monitoring the health of your networked servers and the applications running on them. It provides a simple, intuitive way of checking the health of your systems from a webbrowser, and can also alert you to any problems that arise through alarms sent as e-mail, SMS messages, via a pager or by other means.

Hobbit is Open Source software, licensed under the GNU GPL. This means that you are free to use Hobbit as much as you like, and you are free to re-distribute it and change it to suit your specific needs. However, if you change it then you must make your changes available to others on the same terms that you received Hobbit originally. See the file COPYING in the Hobbit source-archive for details.

Hobbit initially began life as an enhancement to Big Brother. The Big Brother monitoring system - available from BB4 Technologies at http://bb4.com/ - is a flexible system for monitoring the health of networked systems and services. Big Brother will run on anything that has the slightest resemblance with a Unix system, due to the fact that it is almost entirely implemented as Unix shellscripts. However, this flexibility comes at a cost: The performance of the Big Brother scripts is abysmal when you need to monitor more than just a handful of systems.

Hobbit was first created to solve this problem. By re-implementing the core functionality of the Big Brother shell scripts in C, a huge performance boost was achieved while maintaining compatibility with the data-files and extension interfaces that standard Big Brother defines.

However, it became clear that the original design of Big Brother had some scalability problems that could not be solved without a complete re-implementation of the system. With the introduction of the Hobbit network daemon in version 4, this goal was achieved.

The Hobbit tools provide a complete replacement for the Big Brother server. Detailed information about installing and configuring Hobbit is available on-line in the web-pages for your Hobbit server (under the "Help" menu), or in the Hobbit source-tree in the "docs/" directory.

 

FEATURES

The Hobbit tools are designed for installations that need to monitor a large number of hosts, with very little overhead on the monitoring server. Monitoring of thousands of hosts with a single Hobbit server is possible - it was developed to handle just this task.

Fortunately, the speed and efficiency of Hobbit does not incur a cost in the form of complexity. Setting up a Hobbit server for a small network - perhaps just a couple of servers - can be done in less than an hour, and the basic concepts for configuring and using Hobbit are easily understood. If you are familiar with how Big Brother works, you should not have any problems understanding Hobbit. In fact, setting up Hobbit is simpler than setting up Big Brother because a lot of functionality that requires you to install Big Brother add-ons has been integrated into Hobbit and is part of the basic installation.

Apart from the performance improvements, here are some of the Hobbit features:

Monitoring of hosts and networks
Networked applications can be monitored by mimicking the requests sent by an end-user. Hosts can be monitored at the operating system level through the use of clients installed on each host.

The network test tool knows how to test most commonly used protocols, including HTTP, SMTP (e-mail), DNS, LDAP (directory services), and many more. When checking websites, it is possible to not only check that the webserver is responding, but also that the response looks correct by matching the response against a pre-defined pattern or a checksum.

Protocols that use SSL encryption such as https-websites are also supported, and while checking such services the network tester will automatically run a check of the validity of the SSL server certificate, and warn about certificates that are about to expire.

Hosts can be tagged as belonging to specific networks, allowing you to have one configuration file for all Hobbit systems, even when you have more than one network test engine to perform the tests. Each network test engine will perform only the tests relevant for the network segment it has access to.

If a single test is not enough, combination tests can be defined that combine the result of several tests to a single status-report. So if you need to monitor that at least 3 out of 5 servers are running at any time, Hobbit can do that for you and generate the necessary availability report.

Flexible alert reduction
All network tests can be set not to change status to red immediately following a failure, but to gradually go through one or more of green -> clear -> yellow -> red. This cuts down on the number of false alarms, if you have a network or service that often sees brief outages, e.g. due to load or other intermittent problems.

Tests can also be configured to depend on each other, so that when a critical router goes down you will get alerts only for the router - and not from the 200 hosts behind the router.

A simple, intuitive web-based front-end
"Green is good, red is bad". Using the Hobbit webpages is as simple as that. The hosts you monitor can be grouped together in a way that makes sense in your organisation and presented in a tree-structure. You can have multiple different views of the same hosts for different parts of the organisation, e.g. one view for the hardware group, and another view for the webmasters. You can have automatic links to on-line documentation, so information about your critical systems is just a click or two away.

The webpages use many techniques to convey information about the monitored systems, e.g. different icons can be used for recently changed statuses; links to subpages can be listed in multiple columns; different icons can be used for dialup-tests or reverse-tests; selected columns can be dropped or unconditionally included on the webpages to eliminate unwanted information, or always include certain information; user-friendly names can be shown for hosts regardless of their true hostname.

If you have a dedicated Network Operations Centre, you can configure precisely which alerts will appear on their monitors - e.g. a simple anomaly in the system logfile need not trigger a call the 3rd-level support at 2 AM, but if the on-line shop goes down you do want someone to respond immediately. So you put the webcheck for the on-line shop on the NOC monitor page, and leave out the log-file check.

Monitoring data available in many formats
Hobbit can natively present the monitoring data not only as HTML webpages, but also as data that can be used directly by PDA's and cell-phones (WAP/WML format), or an RSS/RDF content-feed. For hooking up with other applications, Hobbit can also provide monitoring data in XML format.

Integrated trend analysis, historical data and SLA reporting
The LARRD trend analysis package is a popular add-on to Big Brother, but also fairly complicated to setup. Hobbit includes all of this functionality in the base package, so that the trends data for network response-times, disk utilisation etc is automatically collected and made available as graphical data.

When you need to drill down into events that have occurred, Hobbit provides a powerful tool for viewing the event history for each statuslog, with overviews of when problems have occurred during the past and easy-to-use zoom-in on the event.

Reports of service availability can be generated on-the-fly, or pre-generated e.g. for monthly reporting of SLA's. Pre-generated reports can be exported to e.g. portal sites, so users without direct access to the Hobbit website can view the report data.

You can configure planned downtime, agreed service availability level service availability time and generate availability reports directly showing the actual availability measured against the agreed SLA.

 

HOBBIT WEBSERVER TOOLS

These tools implement the core functionality of the Hobbit server:

hobbitlaunch(8) is a program scheduler for Hobbit. It acts as a master program for running all of the Hobbit tools on a pure-Hobbit server.

hobbitd(8) is the core network daemon that collects all reports about the status of your hosts. It uses a number of helper modules to implement certain tasks such as updating logfiles and sending out alerts: hobbitd_filestore, hobbitd_history, hobbitd_alert and hobbitd_rrd.

 

HOBBIT TOOLS HANDLING THE WEB USER-INTERFACE

These tools take care of generating and updating the various Hobbit web-pages.

bbgen(1) takes care of updating the Hobbit webpages.

bb-hostsvc.cgi(1) This CGI program generates an HTML view of a single status log. It is used to present the Hobbit status-logs.

hobbitgraph.cgi(1) This CGI program generates graphs of the trend-data collected by Hobbit.

bb-hist.cgi(1) This CGI program generates a webpage with the most recent history of a particular host+service combination.

bb-ack.cgi(1) This CGI program allows a user to acknowledge an alert he received from Hobbit about a host that is in a critical state. Acknowledging an alert serves two purposes: First, it stops more alerts from being sent so the technicians are not bothered wit more alerts, and secondly it provides feedback to those looking at the Hobbit webpages that the problem is being handled.

hobbit-mailack(8) is a tool for processing acknowledgements sent via e-mail, e.g. as a response to an e-mail alert.

bb-findhost.cgi(1) is a CGI program that finds a given host in the Hobbit webpages. As your Hobbit installation grows, it can become difficult to remember exactly which page a host is on; this CGI script lets you find hosts easily.

bb-csvinfo.cgi(1) is a CGI program to present information about a host. The information is pulled from a CSV (Comma Separated Values) file, which is easily exported from any spreadsheet or database program.

bb-rep.cgi(1) This CGI program triggers the generation of Hobbit availability reports, using bbgen(1) as the reporting back-end engine.

bb-replog.cgi(1) This CGI program generates the detailed availability report for a particular host+service combination.

bb-snapshot.cgi(1) is a CGI program to build the Hobbit webpages in a "snapshot" mode, showing the look of the webpages at a particular point in time. It uses bbgen(1) as the back-end engine.

bb-eventlog.cgi(1) is a CGI program to show the Hobbit eventlog. Normally the eventlog is included on the bb2.html page, but this CGI can be used to have custom eventlog displays e.g. with the past 200 events.

 

HOBBIT NETWORK TEST SERVER TOOLS

These tools are used on servers that execute tests of network services.

bbtest-net(1) runs the network service tests.

bbretest-net.sh(1) is an extension script for re-doing failed network tests with a higher frequency than the normal network tests. This allows Hobbit to pick up the recovery of a network service as soon as it happens, resulting in less downtime being recorded.

 

OTHER HOBBIT TOOLS

bb(1) is a drop-in replacement for the standard Big Brother bb client tool. It provides support for HTTP transfer of status messages, allows clients to query the state of tests on the central BBDISPLAY server, and retrieve Hobbit configuration files, besides being compatible with the standard bb client. The server-side script bbmessage.cgi(1) that receives messages sent via HTTP is also included.

bbhostgrep(1) is a utility for use by Hobbit extension scripts. It allows an extension script to easily pick out the hosts that are relevant to a script, so it need not parse a huge bb-hosts file with lots of unwanted test-specifications.

bbhostshow(1) is a utility to dump the full bb-hosts(5) file following any "include" statements.

bbdigest(1) is a utility to compute message digest values for use in content checks that use digests.

bbcombotest(1) is a Hobbit extension script for the BBDISPLAY server, allowing you to build complicated tests from simpler Hobbit test results. E.g. you can define a test that uses the results from testing your webserver, database server and router to have a single test showing the availability of your enterprise web application.

bbproxy(8) is a proxy-server that forwards Hobbit messages between clients and the BBDISPLAY server.

trimhistory(8) is a tool to trim the Hobbit history logs. It will remove all log entries and optionally also the individual status-logs for events that happened before a given time.

 

REQUIREMENTS

Hobbit runs on Unix-like systems - e.g. Linux, OpenBSD or Solaris. It relies on a number of Open-Source libraries and tools:

fping This tool is used to efficiently ping hundreds or thousands of hosts.

RRDtool This library is used to store and present trend-data.

libpcre This library is used for advanced pattern-matching of text strings in configuration files.

OpenSSL This library is used for communication with SSL-enabled network services, and for calculating checksums and message digests when checking that the correct content is returned by a server.

OpenLDAP This library is used for testing LDAP servers.

You do not need to install any part of the Big Brother package to setup a Hobbit server.

For more detailed information about Hobbit system requirements and how to install Hobbit, refer to the online documentation "Installing Hobbit" available from the Hobbit webserver (via the "Help" menu), or from the "docs/install.html" file in the Hobbit source archive.

 

DEMONSTRATION SITE

A site running this software can be seen at http://www.hswn.dk/hobbit/

 

COPYRIGHT

All tools are

  Copyright (C) 2002-2005, Henrik Storner <henrik@storner.dk
All files are released under the GNU General Public License version 2, with the additional exemption that compiling, linking, and/or using OpenSSL is allowed. See the file COPYING for details.

 

MAILING LISTS

hobbit@hswn.dk is an open mailing list for discussions about Hobbit. If you would like to participate, send an e-mail to hobbit-subscribe@hswn.dk to join the list.

An archive of the mailing list is available at http://www.hswn.dk/hobbiton/

If you just want to be notified of new releases of Hobbit, please subscribe to the hobbit-announce mailing list. This is a moderated list, used only for announcing new Hobbit releases. To be added to the list, send an e-mail to hobbit-announce-subscribe@hswn.dk.

 

SEE ALSO

hobbitlaunch(8), hobbitlaunch.cfg(5), hobbitd(8), hobbitd_filestore(8), hobbitd_history(8), hobbitd_alert(8), hobbitd_rrd(8), hobbit-mailack(8), bbgen(1), bb-hostsvc.cgi(1), hobbitgraph.cgi(1), bb-hist.cgi(1), bb-ack.cgi(1), bb-findhost.cgi(1), bb-csvinfo.cgi(1), bb-rep.cgi(1), bb-replog.cgi(1), bb-snapshot.cgi(1), bb-eventlog.cgi(1), bbtest-net(1), bbretest-net.sh(1), bb-services(5), bb(1), bbmessage.cgi(1), bbhostgrep(1), bbhostshow(1), bbdigest(1), bbcombotest(1), bbcombotest.cfg(5), bbproxy(8), trimhistory(8), bb-hosts(5), hobbitserver.cfg(5)


 

Index

NAME
OVERVIEW
FEATURES
HOBBIT WEBSERVER TOOLS
HOBBIT TOOLS HANDLING THE WEB USER-INTERFACE
HOBBIT NETWORK TEST SERVER TOOLS
OTHER HOBBIT TOOLS
REQUIREMENTS
DEMONSTRATION SITE
COPYRIGHT
MAILING LISTS
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 11:36:06 GMT, October 11, 2005