Monitoring NetBackup Daemons
Here’s an example of a script you can use to monitor NetBackup server daemons in a Linux environment. The main difficulty with keeping track of these services is that there are so many of them. What makes NetBackup reliable and rich in features is the modular nature of its design. For the same reason, a NetBackup server may need to run upwards of two dozen service daemons – often multiple instances of each.
Here’s a list of NetBackup daemons you may expect to run on the master server:
bpdbm bpjobd nbcssc nbstserv nbpem nbsvcmon bprd nbim bmrbd vnetd nbrmms pbx_exchange bpcd nbsl nbemm NB_dbsrv nbars nbrb nbevtmgr bmrd bpcompatd nbaudit nbvault nbjm
And these are the daemons that may be active on the media server:
vnetd nbsl bpcd nbcssc bpcompatd vmd nbrmms pbx_exchange spoold spad nbsvcmon tldd avrd ltid nbsvcmon
Not all of these will be active in your particular configuration. If you know your NetBackup environment is operating correctly, you can use the commands below to determine which daemons should be running on your system and use that list for your monitoring purposes.
On the master server:
master_daemons="bpdbm bpjobd nbcssc nbstserv nbpem nbsvcmon bprd nbim bmrbd vnetd nbrmms pbx_exchange bpcd nbsl nbemm NB_dbsrv nbars nbrb nbevtmgr bmrd bpcompatd nbaudit nbvault nbjm" /usr/openv/netbackup/bin/bpps -x > /tmp/nbuproc for i in ${master_daemons} ; do echo "${i}: `grep -c \"${i}\b\" /tmp/nbuproc`" ; done
On the media servers:
media_daemons="vnetd nbsl bpcd nbcssc bpcompatd vmd nbrmms pbx_exchange spoold spad nbsvcmon tldd avrd ltid nbsvcmon" /usr/openv/netbackup/bin/bpps -x > /tmp/nbuproc for i in ${media_daemons} ; do echo "${i}: `grep -c \"${i}\b\" /tmp/nbuproc`" ; done
Simply remove any daemon that says “0” from your list of monitored services. And here’s a very simple monitoring script. Just keep in mind that the script needs to be able to figure out if its running on the master server or on a media server. The way I have it configured, the master server has the word “master” in the hostname. And the media servers don’t.
#!/bin/bash configure() { status=0 f=/tmp/nbuproc if [ -f "${f}" ] ; then /bin/rm -f "${f}" ; fi /usr/openv/netbackup/bin/bpps -x > ${f} if [ ! -f "${f}" ] ; then exit 1 ; fi master_daemons="bpdbm bpjobd nbcssc nbstserv nbpem nbsvcmon bprd nbim vnetd nbrmms pbx_exchange bpcd nbsl nbemm NB_dbsrv nbars nbrb nbevtmgr bpcompatd nbaudit nbvault nbjm" media_daemons="vnetd nbsl bpcd nbcssc bpcompatd vmd nbrmms pbx_exchange nbsvcmon tldd avrd ltid nbsvcmon" } master_mon() { for i in ${master_daemons} do if [ `grep -c "${i}\b" "${f}"` -lt 1 ] then echo "BAD: ${i}" status=1 else echo "GOOD: ${i}" fi done } media_mon() { for i in ${media_daemons} do if [ `grep -c "${i}\b" "${f}"` -lt 1 ] then echo "BAD: ${i}" status=1 else echo "GOOD: ${i}" fi done } # RUNTIME configure if [ `echo $HOSTNAME | egrep -c master` -gt 0 ] then master_mon else media_mon fi