addons:unconfigured_clients

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

addons:unconfigured_clients [2012/10/30 15:09] (current)
Line 1: Line 1:
 +====== Unconfigured Clients ======
  
 +^ Author | [[ ralphmitchell@gmail.com | Ralph Mitchell ]] |
 +^ Compatibility | Xymon 4.2 |
 +^ Requirements | bash, unix |
 +^ Download | None |
 +^ Last Update | 2012-04-14 |
 +
 +===== Description =====
 +I have a situation where we are kickstarting new servers with the xymon client included and also distributing xymon to existing servers that are currently not monitored. ​ These clients show up in the Ghost Client page, but their report content is discarded. ​ This script reads the Ghost Client list and creates an Unconfigured Clients page so that reports from previously unknown clients are captured without manual intervention.
 + 
 +===== Installation =====
 +Save the script somewhere (/​usr/​local/​bin perhaps) and execute from cron on a regular basis.
 +Alternatively,​ add an entry to xymon'​s tasks.cfg
 +
 +Edit the "​GHOSTBUSTERS"​ variable in the script to be a list of email addresses. ​ This list receives an email any time new clients are added to the Unconfigured Clients page.
 +
 +Add an include line to your hosts.cfg to pick up the ghosts host page:
 +
 +   ​include /​home/​xymon/​server/​etc/​hosts.d/​ghosts
 +===== Source =====
 +
 +==== ghosts.sh ====
 +
 +<hidden onHidden="​Show Code ⇲" onVisible="​Hide Code ⇱">​
 +<code bash ghosts.sh>​
 +#!/bin/bash
 +
 +# What: The Xymon ghost report is a list of systems that delivered reports
 +#       ​without being configured in the hosts.cfg file.  This script reads
 +#       the ghost list and generates a hosts.cfg file to contain them, so
 +#       that the various reports are readable/​actionable almost immediately.
 +#       Email is also sent to the Xymon admin so that the ghost list may
 +#       be dispersed among the other hosts.cfg files as appropriate.
 +#
 +# When: 2011-11-03
 +#
 +# Blame: Ralph Mitchell
 +
 +# who do we call?
 +GHOSTBUSTERS="​someonewhocares@domain.com"​
 +
 +# Somewhere to stash the list.
 +# This file needs to be included by /​home/​xymon/​server/​etc/​hosts.cfg
 +GHOSTCFG=/​home/​xymon/​server/​etc/​hosts.d/​ghosts
 +
 +# set up initial page content
 +if [ ! -f $GHOSTCFG ]; then 
 +  echo "# hosts that just showed up one day" ​ > $GHOSTCFG
 +  echo "#" ​                                  >>​ $GHOSTCFG
 +  echo "page ghosts Unconfigured Clients" ​   >> $GHOSTCFG
 +  echo "​group-compress Ghost List" ​          >>​ $GHOSTCFG ​
 +fi
 +
 +# count the current ghost list
 +ZOMBIES=`grep -c noconn $GHOSTCFG`
 +
 +# anything in the ghost list?
 +GHOSTLIST=`/​home/​xymon/​server/​bin/​xymon localhost ghostlist`
 +if [ -n "​$GHOSTLIST"​ ]; then 
 +  # got something, make up a header for the new entries
 +  HEADER="#​ added: `date --rfc-3339=seconds`" ​
 +
 +  # process the ghostlist
 +  echo "​$GHOSTLIST"​ | while read LINE
 +  do 
 +    # extract host name
 +    HOST=`echo $LINE | cut -f1 -d'​|'​` ​
 +
 +    # is this host already in the ghost list?
 +    if [ `grep -c "​$HOST"​ $GHOSTCFG` -eq 0 ]; then 
 +      # not found, add it
 +      if [ -n "​$HEADER"​ ]; then 
 +        # for first new host in this run, add the header
 +        echo "​$HEADER"​ >> $GHOSTCFG
 +        # only want the header once per block
 +        HEADER="" ​
 +      fi
 +
 +      # if it's in the DNS, we might as well use its proper IP
 +      DNS=`nslookup $HOST | grep -A 1 '​Name:'​`
 +      if [ $? -eq 0 ]; then 
 +        # found it, get the IP
 +        HOSTIP=`echo $DNS | cut -f4 -d' '​` ​
 +      else
 +        # not in the DNS
 +        HOSTIP="​0.0.0.0" ​
 +      fi
 +    ​
 +      # the "​noconn"​ option stops xymon from trying to ping the host
 +      echo "​$HOSTIP ​       $HOST                # noconn"​ >> $GHOSTCFG ​
 +    fi
 +  done 
 +
 +  # did we add anything to the ghost file?
 +  COUNT=`grep -c noconn $GHOSTCFG`
 +  COUNT=`expr $COUNT - $ZOMBIES`
 +  if [ $COUNT -gt 0 ]; then 
 +    # let someone know we need to re-process the ghost file
 +    grep noconn $GHOSTCFG | \ 
 +    mailx -s "Xymon Ghost list: $COUNT new members"​ $GHOSTBUSTERS
 +  fi 
 +fi
 +
 +exit 0 
 +</​code>​
 +</​hidden>​
 +
 +===== Known  Bugs and Issues =====
 +
 +===== To Do =====
 +
 +===== Credits =====
 +
 +===== Changelog =====
 +
 +  * **2012-04-14**
 +    * Initial release
  • addons/unconfigured_clients.txt
  • Last modified: 2012/10/30 15:09
  • (external edit)