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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.