Nach meinem ersten Beitrag mit der Überschrift Überwachung BlackBerry Enterprise Server mit Nagios, wurde ich gefragt, ob ich wüßte, dass es ein BlackBerry Plugin für Nagios gibt. Klar weiß ich das, das Plugin check_blackberry kann bei monitoringexchange.org heruntergeladen werden, von dieser Stelle nochmals ein Dankeschön an den Autor Phiulip Deneu für seine Mühen.
Allerdings, hat das Plugin einen kleinen Schönheitsfehler: die im Script verwendete OID, um die Anzahl der Pending Messages festzustellen, stimmt zumindest bei Verwendung mit BES 4.1.6 nicht mehr und liefert deshalb kein Ergebnis. Darüber hinaus reichte es mir nicht aus, die Anzahl der verwendeten CALs festzustellen, ich wollte auch wissen, wieviele CALs noch frei sind. Aus diesem Grund habe ich das Plugin entsprechend angepasst und erweitert.
Die korrekte OID für Pending messages lautet: 1.3.6.1.4.1.3530.5.25.1.202.1.
Nachfolgend die von mir verwendete Version 0.3 des Nagios Plugins check_blackberry:
#!/bin/bash # # Nagios Plugin for checking states of BlackBerry Enterprise Server # # Date: 09.05.2008 # License: GNU Public License v2 # Version: 0.3 stable # Written by: Philipp Deneu # Framework by: Christian Mies # Edited by: Roland Ehle (roland at inbox4u dot de) # Changes in version 0.3: Edited OID for Pending messages # Added function to get remaining licenses and total number of CALs # # Contact # E-Mail: pdeneu at gne dot de # Skype: derdeneu # # www.gne.de # pluginpath="/usr/local/nagios/libexec" 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.5.25.1.10.1' # Connection Status to SRP Router SRPLASTCON='1.3.6.1.4.1.3530.5.25.1.11.1' # Last SRP Connect BESVERS='1.3.6.1.4.1.3530.5.20.1.10.1' # Version of BES PENDINGMSG='1.3.6.1.4.1.3530.5.25.1.202.1' # Number of messages pending USEDLICENSES='1.3.6.1.4.1.3530.5.20.1.21.1' # Number of used Licenses REMLICENSES='1.3.6.1.4.1.3530.5.50.1.37.1' # Number of remaining Licenses TOTLICENSES='1.3.6.1.4.1.3530.5.50.1.36.1' # Total number of Licenses case $query in srpconnect) SRPOID=`$SNMPWALK_BIN -v 1 -c $community -On $hostname $SRPCON | awk '{print $4}' | tr -d '\n'`; SRPLASTOID=`$SNMPWALK_BIN -v 1 -c $community -On $hostname $SRPLASTCON | awk '{print $4" "$5}' | tr -d '\n"'`; if [ $SRPOID -le 0 ]; then echo "CRITICAL: Connection to SRP-Router failed" exit 2 fi; echo "OK: Successful connected to SRP-Router. Last Connection: $SRPLASTOID" exit 0 ;; bes-version) BESVOID=`$SNMPWALK_BIN -v 1 -c $community -On $hostname $BESVERS | awk '{print $10}' | tr -d '\n"'`; echo "BlackBerry Enterprise Server Version: $BESVOID" exit 0 ;; pending) PENDINGMSGOID=`$SNMPWALK_BIN -v 1 -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 ;; usedlicenses) LICENSESOID=`$SNMPWALK_BIN -v 1 -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 ;; remlicenses) LICENSESOID1=`$SNMPWALK_BIN -v 1 -c $community -On $hostname $REMLICENSES | awk '{print $4}' | tr -d '\n'`; if [ $LICENSESOID1 -le $crit ]; then echo "CRITICAL: Remaining Licenses: $LICENSESOID1|Licenses=$LICENSESOID1;$warn;$crit;;" exit 2 fi; if [ $LICENSESOID1 -le $warn ]; then echo "WARNING: Remaining Licenses: $LICENSESOID1|Licenses=$LICENSESOID1;$warn;$crit;;" exit 1 fi; echo "OK: Remaining Licenses: $LICENSESOID1|Licenses=$LICENSESOID1;$warn;$crit;;" exit 0 ;; totallicenses) LICENSESOID2=`$SNMPWALK_BIN -v 1 -c $community -On $hostname $TOTLICENSES | awk '{print $4}' | tr -d '\n'`; if [ $LICENSESOID2 -ge $crit ]; then echo "CRITICAL: Licenses total: $LICENSESOID2|Licenses=$LICENSESOID;$warn;$crit;;" exit 2 fi; if [ $LICENSESOID2 -ge $warn ] && [ $LICENSESOID2 -lt $crit ]; then echo "WARNING: Licenses total: $LICENSESOID2|Licenses=$LICENSESOID2;$warn;$crit;;" exit 1 fi; echo "OK: Licenses total: $LICENSESOID2|Licenses=$LICENSESOID2;$warn;$crit;;" exit 0 ;; *) echo "UNKNOWN: not implemented. Use $pluginname -h" exit 3 ;; esac




Jetzt muss ich nur noch rauskriegen, wie ich meinen BES5 beibringe SNMP zu sprechen. Abfrage über snmpwalk blieb bisher erfolglos, bzw. endete mit einem Timeout.
Hast du da auch ne’n Tipp?