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 called "bbgen". Over a period of 5 years, Hobbit has evolved from a small add-on to a full-fledged monitoring system with capabilities far exceeding what was in the original Big Brother package. Hobbit does still maintain some compatibility with Big Brother, so it is possible to migrate from Big Brother to Hobbit without too much trouble.
Migrating to Hobbit will give you a significant performance boost, and provide you with much more advanced monitoring. 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.
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.
For SLA reporting, You can configure planned downtime, agreed service availability level, service availability time and have Hobbit generate availability reports directly showing the actual availability measured against the agreed SLA. Such reports of service availability can be generated on-the-fly, or pre-generated e.g. for monthly reporting.
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 to 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.
Protocols that use SSL encryption such as https-websites are fully 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.
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.
It is recommended that you setup a dedicated account for Hobbit.
Communications between the Hobbit server and Hobbit clients use the Big Brother TCP port 1984. If the Hobbit server is located behind a firewall, it must allow for inbound connections to the Hobbit server on tcp port 1984. Normally, Hobbit clients - i.e. the servers you are monitoring - must be permitted to connect to the Hobbit server on this port. However, if that is not possible due to firewall policies, then Hobbit includes the hobbitfetch(8) and msgcache(8) tools to allows for a pull-style way of collecting data, where it is the Hobbit server that initiates connections to the clients.
The Hobbit webpages are dynamically generated through CGI programs.
Access to the Hobbit webpages is controlled through your webserver access controls, e.g. you can require a login through some form of HTTP authentication.
RRDtool This library is used to store and present trend-data. It is required.
libpcre This library is used for advanced pattern-matching of text strings in configuration files. This library is required.
OpenSSL This library is used for communication with SSL-enabled network services. Although optional, it is recommended that you install this for Hobbit since many network tests do use SSL.
OpenLDAP This library is used for testing LDAP servers. Use of this is optional.
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.
hobbitd(8) is the core 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_client, hobbitd_history, hobbitd_alert and hobbitd_rrd. There is also a hobbitd_filestore module for compatibility with Big Brother.
hobbitd_channel(8) Implements the communication between the Hobbit daemon and the other Hobbit server modules.
hobbitd_history(8) Stores historical data about the things that Hobbit monitors.
hobbitd_rrd(8) Stores trend data, which is used to generate graphs of the data monitored by Hobbit.
hobbitd_alert(8) handles alerts. When a status changes to a critical state, this module decides if an alert should be sent out, and to whom.
hobbitd_client(8) handles data collected by the Hobbit clients, analyzes the data and feeds back several status updates to Hobbit to build the view of the client status.
hobbitd_hostdata(8) stores historical client data when something breaks. E.g. when a webpage stops responding hobbitd_hostdata will save the latest client data, so that you can use this to view a snapshot of how the system state was just prior to it failing.
hobbitping(1) performs network connectivity (ping) tests.
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.
bbgen(1) takes care of updating the Hobbit webpages.
hobbitsvc.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.
hobbit-hostgraphs.cgi(1) When you want to combine multiple graphs into one, this CGI lets you combine graphs so you can e.g. compare the load on all of the nodes in your server farm.
hobbit-nkview.cgi(1) Generates the Critical Systems view, based on the currently critical systems and the configuration of what systems and services you want to monitor when.
bb-hist.cgi(1) This CGI program generates a webpage with the most recent history of a particular host+service combination.
bb-eventlog.cgi(1) This CGI lets you view a log of events that have happened over a period of time, for a single host or test, or for multiple systems.
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.
hobbit-enadis.cgi(8) is a CGI program to disable or re-enable hosts or individual tests. When disabling a host or test, you stop alarms from being sent and also any outages do not affect the SLA calculations. So this tool is useful when systems are being brought down for maintenance.
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-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.
hobbit-statusreport.cgi(1) is a CGI program reporting test results for a single status but for several hosts. It is used to e.g. see which SSL certificates are about to expire, across all of the Hobbit webpages.
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.
clientupdate(1) Is used on Hobbit clients, to automatically update the client software with new versions. Through this tool, updates of the client software can happen without an administrator having to logon to the server.
msgcache(8) This tool acts as a mini Hobbit server to the client. It stores client data internally, so that the hobbitfetch(8) utility can pick it up later and send it to the Hobbit server. It is typically used on hosts that cannot contact the Hobbit server directly due to network- or firewall-restrictions.
bbproxy(8) is a proxy-server that forwards Hobbit messages between clients and the Hobbit server. The clients must be able to talk to the proxy, and the proxy must be able to talk to the Hobbit server.
hobbitfetch(8) is used when the client is not able to make outbound connections to neither bbproxy nor the Hobbit server (typically, for clients located in a DMZ network zone). Together with the msgcache(8) utility running on the client, the Hobbit server can contact the clients and pick up their data.
bb(1) is the tool used to communicate with the Hobbit server. It is used to send status reports to the Hobbit server, through the custom Hobbit/BB protocol, or via HTTP. It can be used to query the state of tests on the central Hobbit server and retrieve Hobbit configuration files. The server-side script bbmessage.cgi(1) used to receive messages sent via HTTP is also included.
bbcmd(1) is a wrapper for the other Hobbit tools which sets up all of the environment variables used by Hobbit tools.
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 an extension script for the Hobbit 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.
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.
Version 2 of bbgen was released in April 2003, and added a tool for performing network tests.
Version 3 of bbgen was released in September 2004, and eliminated the use of several external libraries for network tests, resulting in a significant performance improvement.
With version 4.0 released on March 30 2005, the project was de-coupled from Big Brother, and the name changed to Hobbit. This version was the first full implementation of the Hobbit server, but it still used the data collected by Big Brother clients for monitoring host metrics.
Version 4.1 was released in July 2005 included a simple Hobbit client for Unix. Logfile monitoring was not implemented.
Version 4.2 was released in July 2006, and includes a fully functional Hobbit client for Unix.