Hobbit-agent

Alexander Bech alex at bakarasse.de
Sat Sep 4 12:10:54 CEST 2010


  Hello,

I would like to introduce to you the hobbit-agent.
Hobbit-agent is a modified hobbit-client and a replacement for it.

The goal: allow more central control of the configs of big number of 
client instances from
hobbit-server without logins to clients.

Hobbit-agent is a script invoked from hobbitclient.sh and does the 
following:

- get and read the configfile hobbit-agent.cfg from $BBDISP

- get all configfiles defined in variable HOBBITAGENT_CONFIG_FILES
   for example: HOBBITAGENT_CONFIG_FILES="bb-hosts bb-services 
bb-sensorstab"

- fetch and execute cfg-generators defined in variable 
$HOBBITAGENT_CFG_GENERATORS.
   Cfg-generators are located on hobbit-server in directory 
$BBHOME/cfg-generators/.
    Cfg-generators are code-snippets, that generates variables depending 
on the local system.
    For example: HOBBITAGENT_CFG_GENERATORS="configclass bblocation 
hardwareclass bbostype"

    - configclass: set the variable CONFIGCLASS from bb-hosts-tag 
"CLASS:" for this client.
      that allows to modify the CLASS of the client from central 
bb-hosts file.

    - bblocation: set the variable BBLOCATION from bb-hosts-tag "BBNET:" 
for this client.
      That allows to activate the handling as network test tool for all 
hosts with corresponding bb-hosts-tag "NET:"
      and distribution of network-tests from central bb-hosts-file to 
different clients without login to clients.

    - hardwareclass: set the variable HWCLASS (similar to CONFIGCLASS) 
from bb-hosts-tag "HWCLASS:"
      for this client. This variable is used from my ext-script healt.sh 
that evaluate the bb-sebsorstab for
      temperature and fan tresholds. The file bb-sensorstab is also for him.

    - bbostype: my first cfg-genetaror. Simply set the variable BBOSTYPE 
from "uname -s".
      Cosmetic pieces.

      Cfg-generators written the files with variables to direcrory 
$HOBBITCLIENTHOME/etc/hobbitclient.d/.

- generate includefiles for hobbitclient.cfg and write it to 
/var/run/hobbit/hobbitclient-include.cfg

All variables from hobbit-client.cfg and generated variables are 
available for hobbitclient.sh, hobbitclient-linux.sh and all plugins.

Hobbit-agent can be expanded easily by adding own variables and 
cfg-generators.

I have also modified the hobbitclient.sh for more automatic 
hobbit-plugins updates (clientupdate):
   - pre-update: if variable $CLEANUP_BEFORE_CLIENTUPDATE = "yes" all 
old plugins are deleted.
     It allows to remove plugins, that are no longer needed, from clients.
   - post-update: generate new include-file 
/var/run/hobbit/clientlaunch-include.cfg for all plugins.
     It activates the new plugins without restarting hobbit.

Hobbit-agent contains binaries bbtest-net, hobbitping and scripts 
bbtest-net.sh and bbretest-net.sh.
If the variable BBLOCATION is set to a non-null value,  bbtest-net  does 
all network testst for all hosts
with corresponding "NET:" tag.

Hobbit-agent contains a new client directory-tree ext-helper.
Similar to ext-directory.
This directory contains subdirectories every1min, every5min, every30min, 
every1hour
for jobs that are not possible with hobbit-user permissions.

For example: make conntrack table available for hobbit-user:
${CAT} /proc/net/ip_conntrack > ${BBTMP}/ip_conntrack.

The scripts are called from cronjob /etc/cron.d/hobbit-ext-helper by 
run-parts with root permissions.

I have tested the hobbit-agent on several hundreds hosts over many 
months and it works well.

More info, downloads and debian-packages "hobbit-agent" for debian and 
ubuntu on
http://www.bakarasse.de/pages/en/xymon-monitoring/hobbit-agent.php

The Hobbit-agent hopes that he could be useful for you, too.


Best Regards,

Alexander Bech




More information about the Xymon mailing list