Table of Contents

Clearcase License client module for Xymon Monitor

Author Michael Nemeth
Compatibility Xymon 4.2
Requirements clearcase
Download None
Last Update 2008-06-22

Description

Monitor and graphs clearcase licenses.

Will turn red or yellow base on percent used set the below in the script.

CCred=95
CCyellow=90

Installation

I run this on the server side to a pseudo host
0.0.0.0 licenses #

Client side

But if you chose to do client side.
Not tested:
Put the script ~hobbit/client/ext/ccl.sh

In the file:
~hobbit/client/etc/clientlaunch.cfg
Added

 [ccl]
  ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg
  CMD $HOBBITCLIENTHOME/ext/ccl.sh
  INTERVAL 5m   

Also the pseudo host MAY work on the client side but Ive not tested.
You may want to do the following:(was working ok on server side)
change varible references of licenses to ${MACHINE}
That is: OUTFILE1=“$BBTMP/ccl.licenses” to OUTFILE1=“$BBTMP/ccl.${MACHINE}”
if you do not want to use a psuedo host (0.0.0.0 licenses)

Server side

~hobbit/server/etc/hobbitlaunch.cfg

Add

 [ccl]                                                   
  ENVFILE PATHTO/etc/hobbitlaunch.cfg                
  CMD $BBHOME/ext/ccl.sh                              
  INTERVAL 5m

where PATHTO is replaced with something like /home/nemeth/hobbit/server.

Two lines are changed in the configuration file hobbitserver.cfg:

TEST2RRD="cpu=la,disk, ... ,lines,ccl=ncv"
GRAPHS="la,disk, ... ,lines,ccl"

and ADD:

NCV_ccl="*:GAUGE"

You may want to create a a psuedo host 0.0.0.0 licenses # in the bb-hosts file or change varible references of licenses to ${MACHINE}

That is: OUTFILE1=“$BBTMP/ccl.licenses” to OUTFILE1=“$BBTMP/ccl.${MACHINE}”

Add into the configuration file hobbitgraph.cfg. This should preferably be inserted at the end.

[ccl]
        TITLE  clearcase licenses
        YAXIS #
        DEF:CA=ccl.rrd:Currentactiveusers:AVERAGE
        LINE2:CA#FF0000:Current activeusers
        COMMENT:\n
        GPRINT:CA:LAST: \: %5.1lf (cur)
        GPRINT:CA:MAX: \: %5.1lf (max)
        GPRINT:CA:MIN: \: %5.1lf (min)
        GPRINT:CA:AVERAGE: \: %5.1lf (avg)\n
        DEF:MA=ccl.rrd:Maximumactiveusersa:AVERAGE
        LINE2:MA#CC3333:Maximum Active Users
        COMMENT:\n
        GPRINT:MA:LAST: \: %5.1lf (cur)
        GPRINT:MA:MAX: \: %5.1lf (max)
        GPRINT:MA:MIN: \: %5.1lf (min)
        GPRINT:MA:AVERAGE: \: %5.1lf (avg)\n
        DEF:AA=ccl.rrd:Availablelicenses:AVERAGE
        LINE2:AA#00CCCC:Available licenses
        COMMENT:\n
        GPRINT:AA:LAST: \: %5.1lf (cur)
        GPRINT:AA:MAX: \: %5.1lf (max)
        GPRINT:AA:MIN: \: %5.1lf (min)
        GPRINT:AA:AVERAGE: \: %5.1lf (avg)\n

You may want to drop either the Currentactiveusers or Availablelicenses section, but I like having the Maximumactiveusersa as a “ceiling line”

Source

ccl.sh

Show Code ⇲

Hide Code ⇱

#!/bin/ksh -p
 
COLUMN=ccl
 
# COLOR defaults to green
COLOR=GREEN
 
CCred=95
CCyellow=90
 
# You may want to: change varible references of licenses to ${MACHINE}
#That is:  OUTFILE1="$BBTMP/ccl.licenses" to  OUTFILE1="$BBTMP/ccl.${MACHINE}"
# if you do not want to use a psuedo host (0.0.0.0 licenses)
 OUTFILE1="$BBTMP/ccl2.licenses"
 touch $OUTFILE1
 
 
cclfile="$BBTMP/ccl.licenses"
CClicense=/usr/atria/bin/clearlicense
 
$CClicense  | sed  -n '/ClearCase/,/Available licenses/p'  > $cclfile
$CClicense  | sed  -n  '/License Usage Statistics/,/active users bumped by preferred user/p' | head  -4 >> $cclfile
 
Max_User=`$CClicense  | sed -n '/Max-Users/{n;p;q;}'   | awk '{print $1}'  `
 
Current_Users=`$CClicense  | sed -n '/Current active users:/{p;q;}'  | awk -F: '{print $2}'`
 
PCusered=`expr $Current_Users \* 100 \/ $Max_User`
 
 
  if [ $PCusered -gt $CCyellow ]; then
   COLOR=yellow
   echo " Clearcase licensence exceed yellow limit of $CCyellow " >  $OUTFILE1
  else
      COLOR=green
fi
 
  if [ $PCusered -gt $CCred ]; then
   COLOR=red
   echo " Clearcase licensence exceed red limit of $CCred " >  $OUTFILE1
  else
      COLOR=$COLOR
fi
 
 
# Tell Xymon about it
$BB $BBDISP "status licenses.ccl $COLOR `date`
`echo`
`echo "Clearcase\n"`
`echo "Max-User:\n"`
`echo ${Max_User}`
`echo "%Used:\n"`
`echo ${PCusered}`
`echo`
`cat ${OUTFILE1}`
`echo`
`cat ${cclfile}`
 "
rm $cclfile
rm $OUTFILE1
 
exit 0

Known Bugs and Issues

I don't what happens if the clearlicense command cann't contact the license server.

To Do

Figure out what happens if the clearlicense command can't contact the license server

Turn red if the license server down.

Clean up the script. Found out I can get info on our two product separately (clearcase and multisite) this would make the parsing easier.

Credits

Changelog