====== netbackup ======
^ Author | [[ grossi@acantho.net | Gianluca Rossi ]] |
^ Compatibility | Xymon 4.2 |
^ Requirements | Netbackup 4.5 and Netbackup 6, sudo |
^ Download | None |
^ Last Update | 2007-02-15 |
===== Description =====
Monitor Vertias NetBackup status.
===== Installation =====
==== Client Configuration ====
- Add the following to sudoers on the NetBackup Master Server.
Cmnd_Alias NETBACKUP = /opt/openv/netbackup/bin/admincmd/bpdbjobs, \
/opt/openv/netbackup/bin/admincmd/bperror, \
/opt/openv/netbackup/bin/admincmd/bpmedialist, \
/opt/openv/volmgr/bin/vmquery
hobbit ALL=NOPASSWD:NETBACKUP
- Add nb* scripts to client's ext folder
* nb.cfg : common config file. you must edit this file first
* nb-media.sh : check available and frozen media, you should not edit this file
* nb.sh : check netbackup messages, you should not edit this file
- Add the following to client hobbitlaunch.cfg
[nbmedia]
ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg
CMD $HOBBITCLIENTHOME/ext/nb-media.sh
LOGFILE $HOBBITCLIENTHOME/logs/nb-media.log
INTERVAL 5m
[nblog]
ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg
CMD $HOBBITCLIENTHOME/ext/nb.sh
LOGFILE $HOBBITCLIENTHOME/logs/nb.log
INTERVAL 5m
==== Server Configuration ====
None.
===== Source =====
==== nb.sh ====
#!/bin/bash
# Netbackup messages monitoring script
# Gianluca Rossi - grossi@acantho.net
# TEST NAME: THIS WILL BECOME A COLUMN ON THE DISPLAY
# IT SHOULD BE AS SHORT AS POSSIBLE TO SAVE SPACE...
# NOTE YOU CAN ALSO CREATE A HELP FILE FOR YOUR TEST
# WHICH SHOULD BE PUT IN www/help/$TEST.html. IT WILL
# BE LINKED INTO THE DISPLAY AUTOMATICALLY.
#
TEST="nbackup"
#
# BBHOME CAN BE SET MANUALLY WHEN TESTING.
# OTHERWISE IT SHOULD BE SET FROM THE BB ENVIRONMENT
#
# BBHOME=/home/sean/bb; export BBHOME # FOR TESTING
if test "$BBHOME" = ""
then
echo "BBHOME is not set... exiting"
exit 1
fi
if test ! "$BBTMP" # GET DEFINITIONS IF NEEDED
then
# echo "*** LOADING BBDEF ***"
. $BBHOME/etc/bbdef.sh # INCLUDE STANDARD DEFINITIONS
fi
#
# include Netbackup configuration
#
. $BBHOME/ext/nb.cfg
WARNING="`$BPERROR -U -s WARNING -hoursago 1 2>/dev/null | sed '1d'| head -10`"
ERROR="`$BPERROR -U -s ERROR -hoursago 1 2>/dev/null | sed '1d'| head -30`"
CRITICAL="`$BPERROR -U -s CRITICAL -hoursago 1 2>/dev/null | sed '1d'| head -30`"
INFO="`$BPERROR -U -s INFO -hoursago 1 2>/dev/null | sed '1d' | head -10`"
LINE=""
COLOR="green"
STATUS="Netbackup OK"
if [ ! -z "$INFO" ]
then
LINE=`printf "\n - - - INFO MESSAGES- - -\n${INFO}\n${LINE}"`
fi
if [ ! -z "$WARNING" ]
then
LINE=`printf "\n - - - WARNING MESSAGES - - -\n${WARNING}\n${LINE}"`
COLOR="yellow"
STATUS="Netbackup - Warning"
fi
if [ ! -z "$ERROR" ]
then
LINE=`printf "\n - - - ERROR MESSAGES - - -\n${ERROR}\n${LINE}"`
COLOR="red"
STATUS="Netbackup - Error"
fi
if [ ! -z "$CRITICAL" ]
then
LINE=`printf "\n - - - CRITICAL MESSAGES - - -\n${CRITICAL}\n${LINE}"`
COLOR="red"
STATUS="Netbackup - Critical"
fi
#
# AT THIS POINT WE HAVE OUR RESULTS. NOW WE HAVE TO SEND IT TO
# THE BBDISPLAY TO BE DISPLAYED...
#
$BB $BBDISP "status $MACHINE.$TEST $COLOR `date` - $STATUS $LINE"
==== nb-media.sh ====
#!/bin/bash
#
# Veritas NetBackup hobbit plugin
# Gianluca Rossi - grossi@acantho.net
# 1 - check available media
# 2 - check DOWNed drive
# 3 - check FROZEN media
#
# TEST NAME: THIS WILL BECOME A COLUMN ON THE DISPLAY
# IT SHOULD BE AS SHORT AS POSSIBLE TO SAVE SPACE...
# NOTE YOU CAN ALSO CREATE A HELP FILE FOR YOUR TEST
# WHICH SHOULD BE PUT IN www/help/$TEST.html. IT WILL
# BE LINKED INTO THE DISPLAY AUTOMATICALLY.
#
TEST="nbmedia"
#
# BBHOME CAN BE SET MANUALLY WHEN TESTING.
# OTHERWISE IT SHOULD BE SET FROM THE BB ENVIRONMENT
#
# BBHOME=/home/sean/bb; export BBHOME # FOR TESTING
if test "$BBHOME" = ""
then
echo "BBHOME is not set... exiting"
exit 1
fi
if test ! "$BBTMP" # GET DEFINITIONS IF NEEDED
then
# echo "*** LOADING BBDEF ***"
. $BBHOME/etc/bbdef.sh # INCLUDE STANDARD DEFINITIONS
fi
#
# include Netbackup configuration
#
. $BBHOME/ext/nb.cfg
LINE="
"
ERR=0
#set -x
#
# how many media are available on the scratch pool?
#
$VMQUERY -pn $SCRATCH_POOL | egrep 'robot number:' | sort >$BBTMP/vmquery.$$
uniq < $BBTMP/vmquery.$$ > $BBTMP/vmqueryuniq.$$
while read line
do
set $line
ROBOT_NUMBER=$3
NUM_MEDIA=`grep $ROBOT_NUMBER $BBTMP/vmquery.$$ | wc -l`
COLOR="green"
if [ $NUM_MEDIA -lt $WARN_MEDIA ] ; then
ERR=`expr $ERR + 1`
COLOR="yellow"
fi
if [ $NUM_MEDIA -lt $ERR_MEDIA ] ; then
ERR=1000
COLOR="red"
fi
LINE="${LINE}
&${COLOR}${NUM_MEDIA} Media available on robot $ROBOT_NUMBER"
done < $BBTMP/vmqueryuniq.$$
rm -f $BBTMP/vmquery.$$ $BBTMP/vmqueryuniq.$$
#
# check for DOWN drive
#
$VMDAREQ -a >$BBTMP/vmdareq.$$
#
NUMDRIVE=`cat $BBTMP/vmdareq.$$ | egrep '^[0-9a-zA-Z]' | wc -l`
NUMDOWN=`cat $BBTMP/vmdareq.$$ | grep 'DOWN$' | wc -l`
VMSTATUS=`cat $BBTMP/vmdareq.$$ | egrep '^[0-9a-zA-Z]|DOWN$'`
if [ $NUMDOWN -gt $WARN_DOWN ]; then
ERR=`expr $ERR + 1`
COLOR="yellow"
fi
if [ $NUMDOWN -gt $ERR_DOWN ]; then
ERR=1000
COLOR="red"
fi
LINE="${LINE}
&${COLOR}${NUMDRIVE} Total drive. ${NUMDOWN} are down.
${VMSTATUS}
"
rm -f $BBTMP/vmdareq.$$
#
# check for frozen media on every media server
#
for host in $MEDIA_SERVERS
do
$BPMEDIA -summary -h $host | sed '1d' | head -6 > $BBTMP/media.$$
FROZEN=`cat $BBTMP/media.$$ | tail -1 | awk '{ print $4}'`
COLOR="green"
if [ $FROZEN -gt $WARN_FROZEN ] ; then
COLOR="yellow"
ERR=`expr $ERR + 1`
fi
if [ $FROZEN -gt $ERR_FROZEN ] ; then
COLOR="red"
ERR=1000
fi
O=`tail +2 $BBTMP/media.$$ | sed "s/^MEDIA/\&$COLOR/"`
LINE="${LINE}
*******************************************************************************
$O"
done
rm -f $BBTMP/media.$$
if [ $ERR -ge 1000 ] ; then
ERR="red"
STATUS="Media Error"
elif [ "$ERR" -gt 0 ] ; then
ERR="yellow"
STATUS="Media Warning"
else
ERR="green"
STATUS="Media OK"
fi
#
# AT THIS POINT WE HAVE OUR RESULTS. NOW WE HAVE TO SEND IT TO
# THE BBDISPLAY TO BE DISPLAYED...
#
$BB $BBDISP "status $MACHINE.$TEST $ERR `date` - $STATUS
$LINE"
#echo $BBDISP "status $MACHINE.$TEST $ERR `date` - $STATUS $LINE"
==== nb.cfg ====
# NetBackup plugin configuration
#
MASTER_SERVER="back-ser"
MEDIA_SERVERS="back-ser mediasrv0 mediasrv1"
# change following commands to the correct path
SUDO="/usr/local/bin/sudo"
BPERROR="$SUDO /opt/openv/netbackup/bin/admincmd/bperror"
VMQUERY="$SUDO /opt/openv/volmgr/bin/vmquery"
BPMEDIA="$SUDO /opt/openv/netbackup/bin/admincmd/bpmedialist"
VMDAREQ="$SUDO /usr/openv/volmgr/bin/vmdareq"
BPDBJOBS="$SUDO /usr/openv/netbackup/bin/admincmd/bpdbjobs"
#
# minimun number of media available on the scratch poll
#
WARN_MEDIA=7
ERR_MEDIA=5
# name of the scratch poll
SCRATCH_POOL=Scratch_pool
# alert if there are too many frozen media
WARN_FROZEN=5
ERR_FROZEN=7
# alert in there are DOWN drive
ERR_DOWN=2
WARN_DOWN=1
#
# not yet used
#
IGNORE_CODES="0 150"
WARNING_CODES="1"
===== Known Bugs and Issues =====
* No known bugs
===== To Do =====
===== Credits =====
===== Changelog =====
* **2007-02-15**
* Initial release