Xymon/Hobbit Plugins
--------------------

This set of client and server plugins (scripts, extensions) is moderately
tailored for Debian, but should be pretty usable on any *nix platform.

Some plugins require additional packages installed.

Included client plugins:

 * apt - check for outstanding updates

   Optional configuration files:

     /etc/xymon/apt_no_repo_accept - Packages not from repositories but ok.
     /etc/xymon/apt_reject - Packages which must not be installed at all.

   Both configuration files should have one package names matching
   Perl regular expression per line. The regular expression is
   implicitly surrounded by "^" and "$" so a line just containing
   "gnome" doesn't match most gnome packages but only the "gnome" meta
   package. Use ".*" at the end of the line to match multiple packages
   with the same prefix. Please note that this also means that you
   have to escape plus-signs ("+") in package names with backslash
   ("\"). See the example below.

   Example file:

   conkeror
   dphys-swapfile
   unburden-home-dir
   virtualbox-ose-modules-.*
   xlockmore-gl
   xscreensaver.*
   g\+\+

*  bkpc - check hosts backed up with BackupPC
   Needs: backuppc, sudo

   Based on the nagios backuppc check at
   http://n-backuppc.cvs.sf.net/viewvc/n-backuppc/check_backuppc/check_backuppc?revision=1.21

   In comparison to other included checks this one uses no special
   configuration files but needs to be configured via commandline
   options in /etc/xymon/clientlaunch.d/backuppc.cfg

   Run "/usr/lib/xymon/client/ext/backuppc --help" for available
   options.

 * dirtyetc - check for conffiles which are modified compared to
   Debian's defaults but should not be.
   Needs: sudo (recommended), debsums

   Configuration file:

     /etc/xymon/dirty_etc_ok - Which files are ok to be modified.

   The file should contain one path match Perl regular expression per
   line, with ^ and $ implied.

   Example file:

   /etc/xymon/clientlaunch.d/dirtyetc.cfg
   /etc/dphys-config
   /etc/unburden_home_dir.*

 * dirtyvcs - check for not checked in modifications or files in VCS
   repositories

   Needs: libfile-which-perl

   Also checks the consistency of (non-bare) git repositories.

   Configuration files:

     /etc/xymon/dirty_vcs_dirs - Where to look for repositories.
     .dirtyvcs_no_fsck (per git repository)
     .git/dirtyvcs_no_fsck (local per git repository)

   The file dirty_vcs_dirs should contain one directory path per line,
   wildcards allowed. In each of the matching directories, it looks
   for the typical subdirectories of the supported version control
   systems (for now Git, Mercurial, Bzr and Subversion) and queries
   the state of the repository.

   Example file:

   /etc
   /etc/*
   /etc/amavis/conf.d
   /opt
   /opt/*
   /opt/*/bin
   /opt/*/sbin
   /usr/local/bin
   /usr/local/sbin
   !/opt/test/bin

   Paths listed with a leading exclamation mark ("!") will be
   skipped. This allows system administrators to check for their
   repos, but skip users' repos. No wildcards supported there
   currently.

   The existence of a file named .dirtyvcs_no_fsck (per git
   repository, to be committed into the repository) or
   .git/dirtyvcs_no_fsck (local per working copy) prevents that
   dirtyvcs runs "git fsck" on the repository. This may be needed on
   big repositories where "git fsck" runs quite some time or needs too
   much RAM or I/O.

 * ipmi - read IPMI sensors and event log
   Needs: ipmitool

 * misc - plugin which can aggregate the output and states of other plugins
   Needs: libsysadm-install-perl

 * misc.d/zombies - Warns about processes in zombie state.

   Configuration file: /etc/xymon/zombies_ignore

   Text up to the first whitespace is considered a perl regular
   expression (with implicit ^…$ around) to match the name in the
   "Name" line of /proc/*/status.

   If the regular expression contains the string ":^" the text before
   this string is a regular expression matched against the user name
   of the owner of the process and the text behind is the actual
   regular expression matched against the zombie's program name. Use
   this to ignore e.g. ssh zombies only if they belong to a specific
   user.

   All text starting with the first non-whitespace after the first
   white space is considered the reason for whitelisting these zombie
   processes.

   Example file at
   /usr/share/doc/hobbit-plugins/examples/zombies_ignore

 * libs - check for running processes with upgraded libraries
   Needs: lsof, sudo

 * mailman - check for the existence of Mailman qfiles.
   Needs: sudo

 * mdstat - check for failed or resyncing software RAID devices

 * mq - checks (Postfix's) mail queue

   Checks at least Postfix's mail queue by parsing the mailq command's
   output. Patches to support other MTAs are welcome.

   Recognizes too many mails in the mailq as well as possible RBL
   issues.

 * misc - meta plugin for running series of scripts
   Needs: libsysadm-install-perl

 * ntpq - check the ntpd daemon synchronization status (needs ntp)

 * postgres - statistics graphs for postgresql databases
   Needs: libdbd-pg-perl

 * sftbnc - check if the local Postfix MTA has soft_bounce enabled.

Included server plugins:

 * aptdiff - monitor list of installed packages in host pools

 * conn6 - check IPv6 connectivity
   Needs: fping

   Enable this test in /etc/xymon/xymonlaunch.d/conn6.cfg and add
   conn6 to the services of a host in bb-hosts and this script will
   ping6 the AAAA record of the given host.

   Alternatively you can add a comma separated list of IPv6 addresses or
   hostnames that resolve to IPv6 addresses as a parameter to conn6, to ping6
   all these addresses.

   Examples:

   10.1.2.3 foo # ftp conn6:2001:db8:1::42
   10.1.2.4 bar # smtp conn6
   10.1.2.5 baz # conn6:baz.example.com dialup
   10.1.2.6 router # conn6:2001:db8:1::1,2001:db8:2::1

 * ircbot - relay status changes to IRC
   Needs: libpoe-component-irc-perl

 * tftp - check downloading files from TFTP servers
   Needs: libnet-tftp-perl

   Enable this test in /etc/xymon/xymonlaunch.d/tftp.cfg and add
   tftp to the services of a host and this script will try to
   download the file /pxelinux.0 via TFTP from the given host.

   Alternatively you can add colon separated a file or path which
   should be used to test the TFTP server.

   Currently only one file per server can be tested.

   Examples:

   10.1.2.3 foo # ftp tftp
   10.1.2.4 bar # smtp tftp:bootmgr.exe
   10.1.2.5 baz # tftp:/sparc.img

More plugins:

 * Xymonton (formerly "The Shire"): http://xymonton.org/
 * Many Big Brother plugins also run with Xymon: http://www.deadcat.net/
 * The Xymon monitor itself can be found at http://xymon.sourceforge.net/

Feedback welcome, especially suggestions for new plugins - use the Debian BTS,
or e-mail us at hobbit-plugins@packages.debian.org.

 -- Axel Beckert <abe@debian.org>, Wed, 17 Jul 2013 14:14:36 +0200
