#!/bin/bash # # Nagios Plugin for checking states of BlackBerry Enterprise Server 5.0.0.110 # # Date: 12/11/2009 # License: GNU Public License v2 # Version: 0.3 stable # Written by: Philipp Deneu # Framework by: Christian Mies # Updated for 5.0.0.110 by Ross O. Fomerand # Contact # E-Mail: pdeneu@gne.de # Skype: derdeneu # www.gne.de # # Updated for 5.0.3 # # # Change the plugin path to reflect your nagios install pluginpath="/usr/lib/nagios/plugins" pluginname=`basename $0` while getopts "H:C:Q:w:c:" options; do case $options in H)hostname=$OPTARG;; C)community=$OPTARG;; Q)query=$OPTARG;; w)warn=$OPTARG;; c)crit=$OPTARG;; *) echo "$pluginname Help:" echo "-----------------" echo "-H : Hostname/IP of BES " echo "-C : SNMP Community. Default: public" echo "-Q query : the part to query:" echo " srpconnect= SRP connection status " echo " bes-version= BlackBerry Enterprise Server Version " echo " pending= Number of messages pending " echo " licenses= Number of used Licenses " echo "-w : Warning Threshold " echo "-c : Critical Threshold " echo "-----------------" echo "Usage: $pluginname -H -C -Q -w -c " exit 3 ;; esac done if [ -z $community ]; then community=public; fi; SNMPWALK_BIN='/usr/bin/snmpwalk' SRPCON='1.3.6.1.4.1.3530.6.7.15.120.15.1.2' # Connection Status to SRP Router SRPLASTCON='.1.3.6.1.4.1.3530.6.7.15.120.15.1.1' # Last SRP Connect BESVERS='1.3.6.1.4.1.3530.6.7.10.10.10.1.6.1.20' # Version of BES PENDINGMSG='1.3.6.1.4.1.3530.6.7.10.40.10.1.16' # Number of messages pending USEDLICENSES='1.3.6.1.4.1.3530.5.50.1.38.3' # Number of used Licenses #SNMPv2-SMI::enterprises.3530.5.50.1.36.3 = INTEGER: 80 licenses total #SNMPv2-SMI::enterprises.3530.5.50.1.37.3 = INTEGER: 16 licenses free #SNMPv2-SMI::enterprises.3530.5.50.1.38.3 = INTEGER: 64 licenses used case $query in srpconnect) SRPOID=`$SNMPWALK_BIN -v 2c -c $community -On $hostname $SRPCON | awk '{print $4}' | tr -d '\n'`; SRPLASTOID=`$SNMPWALK_BIN -v 2c -c $community -On $hostname $SRPLASTCON | awk '{print $4" "$5}' | tr -d '\n"'`; SRPLASTOIDREADABLE=`date -d @\$SRPLASTOID` if [ $SRPOID -le 0 ]; then echo "CRITICAL: Connection to SRP-Router failed" exit 2 fi; echo "OK: Successful connected to SRP-Router. Last Connection: $SRPLASTOIDREADABLE" exit 0 ;; bes-version) BESVOID=`$SNMPWALK_BIN -v 2c -c $community -On $hostname $BESVERS | awk '{print $4}' | tr -d '\n"'`; echo "BlackBerry Enterprise Server Version: $BESVOID" exit 0 ;; pending) PENDINGMSGOID=`$SNMPWALK_BIN -v 2c -c $community -On $hostname $PENDINGMSG | awk '{print $4}' | tr -d '\n'`; if [ "$PENDINGMSGOID" -ge "$crit" ]; then echo "CRITICAL: Pending Mails: $PENDINGMSGOID|Pending=$PENDINGMSGOID;$warn;$crit;;" exit 2 fi; if [ "$PENDINGMSGOID" -ge "$warn" ] && [ "$PENDINGMSGOID" -lt "$crit" ]; then echo "WARNING: Pending Mails: $PENDINGMSGOID|Pending=$PENDINGMSGOID;$warn;$crit;;" exit 1 fi; echo "OK: Pending Mails: $PENDINGMSGOID|Pending=$PENDINGMSGOID;$warn;$crit;;" exit 0 ;; licenses) LICENSESOID=`$SNMPWALK_BIN -v 2c -c $community -On $hostname $USEDLICENSES | awk '{print $4}' | tr -d '\n'`; if [ "$LICENSESOID" -ge "$crit" ]; then echo "CRITICAL: Licenses used: $LICENSESOID|Licenses=$LICENSESOID;$warn;$crit;;" exit 2 fi; if [ "$LICENSESOID" -ge "$warn" ] && [ "$LICENSESOID" -lt "$crit" ]; then echo "WARNING: Licenses used: $LICENSESOID|Licenses=$LICENSESOID;$warn;$crit;;" exit 1 fi; echo "OK: Licenses used: $LICENSESOID|Licenses=$LICENSESOID;$warn;$crit;;" exit 0 ;; *) echo "UNKNOWN: not implemented. Use $pluginname -h" exit 3 ;; esac