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