[hobbit] Using ssh to retrieve hobbit data

Henrik Stoerner henrik at hswn.dk
Wed Jan 4 12:15:56 CET 2006


On Tue, Jan 03, 2006 at 02:37:15PM -0500, James B Horwath wrote:
> I am converting my BB 19.c system to Hobbit 4.1.2p1.  With BB I used to 
> use ssh to fetch data from remote servers in a DMZ (using the 
> bb-fetchtab).   Can I do this in Hobbit.  I have searched the mail archive 
> and manuals and didn't see the option anywhere. 

I haven't done this, but off the top of my head it could be done like
this:

1) Install the Hobbit client on the servers you monitor.
   Near the bottom of the clients' ~hobbit/client/bin/hobbitclient.sh
   you'll see this bit of code:

     if test "$LOCALMODE" = "yes"; then
        echo "@@" >> $TEMPFILE
        $BBHOME/bin/hobbitd_client --local --config=$BBHOME/etc/localclient.cfg <$TEMPFILE
     else
        $BB $BBDISP "@" < $TEMPFILE
     fi

   Which is what takes care of sending the client status to Hobbit.
   Just comment out those lines, or delete them ... this will simply
   make the client put the status message in client/tmp/msg.txt .


2) On the Hobbit server, run a script to fetch the client status files.
   You can run it as a Hobbit server extension script (add it to 
   hobbitlaunch.cfg); it would go something like this:

   bbhostgrep fetchdata | \
   while read L; do
         set $L
	 IP=$1
	 HOSTNAME=$2
	 LOGFILE=$BBTMP/clientmsg-$HOSTNAME.txt

	 # Delete the old statusfile and get the new one
	 rm -f $MSGFILE
	 scp hobbit@$HOSTNAME:client/tmp/msg.txt $MSGFILE

         if test -f $MSGFILE; then
	    # Got a statusfile, send it to Hobbit
	    $BB $BBDISP "@" < $MSGFILE
	 fi
   done

   This uses the bbhostgrep command to pick out those hosts that have a
   "fetchdata" in their bb-hosts entry. It then scp's the client status
   file over to the Hobbit server, and runs the normal "bb" command to
   feed the client status report into the Hobbit server.

   You will of course need to arrange for ssh to login to each of the
   clients without requiring a password, but you probably already did
   that with bb-fetch.


This is a rough solution. It doesn't deal with scp taking a loooooong
time to login or timeout if your client is down; it doesn't delete the
client-side status message, so if you client stops running you won't
notice it going purple. But it should give you an idea of how it can
be done, and it would work for the common case.


Regards,
Henrik




More information about the Xymon mailing list