#!/bin/sh # Plugin to check Ironport Appliances # Desarrollado por Claudio Saavedra (20080120) # Translated to english by Steven Geerts (20080316) # Added various extra checks by Steven Geerts (20080830) # Added feature key checks by Paul Robinson paul@syntonic.com.au (20090711) # Added extended feature keys check by Martin Eppler meppler@iplab-emea.de (20110331) # Added feature keys check for IronPort M-Series Martin Eppler meppler@iplab-emea.de (20110405) # input parameters HOSTNAME=$1 USER=$2 PASSWORD=$3 ARGS=$4 PAR_WARN=$5 PAR_CRIT=$6 STATUSFILE=/tmp/status.`echo $RANDOM$RANDOM|cut -c1-4` # Nagios return codes STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 STATE_DEPENDENT=4 PROGNAME=`basename $0` print_usage() { echo "" echo "Usage: $PROGNAME " echo "" echo "Notes:" echo " hostname - Can be a hostname or IP address" echo " parameter - Can be one of the following:" echo " (status based) status, cpu, ram, msgxhour, conn_in, conn_out, queue, workqueue," echo " msgs_in_quarantine, disk_util, disk_usage, resourceconservation," echo " release and oldmessage" echo " (feature keys) of_license, sophos_license, ipspam_license, cm_license," echo " mcafee_license, bv_license, encryption_license, receiving_license," echo " dlp_license, multiscan_license, imageanalysis_license, " echo " emailtracking_license (post 7.2), emailreporting_license (post 7.2)," echo " configmanager_license, spamquarantine_license, webreporting_license, " echo " tracking_license (pre 7.2) and reporting_license (pre 7.2)" echo "" echo "parameters for STATUS and RELEASE are ignored but must be provided. The results for STATUS can be OK or critical, RELEASE always returns OK." echo "parameters for RESOURCECONSERVATION should be 1-60 (throttled) or 999 (listener suspended)." echo "parameters for *_license should reverse warning and critical values (since less days remaining is actually critical but script requires warning to be less than critical)." } # XML Parameter info: # DONE # DONE # DONE # # # # # DONE # DONE # # # DONE # DONE # # DONE # DONE # DONE # # DONE # DONE # DONE # # # while test -n "$1"; do case "$1" in --help) print_usage exit $STATE_OK ;; -h) print_usage exit $STATE_OK ;; esac shift done # Check arguments for validity if [ -z ${HOSTNAME} ]; then echo "Please specify the hostname!" print_usage exitstatus=$STATE_UNKNOWN exit $exitstatus fi if [ $PAR_WARN -ge $PAR_CRIT ]; then exitstatus=$STATE_UNKNOWN echo "The WARNING number can not be larger or equal to the CRITICAL number!" exit $exitstatus fi wget --http-user=$USER --http-password=$PASSWORD --no-check-certificate --no-proxy https://$HOSTNAME/xml/status --output-document=$STATUSFILE >> /dev/null 2>&1 #wget --http-user=$USER --http-password=$PASSWORD --no-check-certificate https://$HOSTNAME/xml/status --output-document=$STATUSFILE >> /dev/null 2>&1 if [ $? -ne 0 ]; then exitstatus=${STATE_UNKNOWN} echo "" echo "Can't collect data from an Ironpor appliance Ironport. Verify hostname, userID and password!" rm -rf $STATUSFILE exit $exitstatus else exitstatus=${STATE_OK} fi case "$ARGS" in # DONE # DONE status) IPORTPAR=`grep "system status" $STATUSFILE | cut -d\" -f 2` if [ $IPORTPAR = online ]; then exitstatus=${STATE_OK} echo "Status OK: $IPORTPAR" else exitstatus=${STATE_CRITICAL} echo "Status CRITICAL: $IPORTPAR" fi ;; cpu) IPORTPAR=`grep total_utilization $STATUSFILE | cut -d\" -f 4` if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "CPU CRITICAL: $IPORTPAR%" else exitstatus=${STATE_WARNING} echo "CPU WARNING: $IPORTPAR%" fi else exitstatus=${STATE_OK} echo "CPU OK: $IPORTPAR%" fi ;; ram) IPORTPAR=`grep ram_utilization $STATUSFILE | cut -d\" -f 4` if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "RAM CRITICAL: $IPORTPAR%" else exitstatus=${STATE_WARNING} echo "RAM WARNING: $IPORTPAR%" fi else exitstatus=${STATE_OK} echo "RAM OK: $IPORTPAR%" fi ;; msgxhour) IPORTPAR=`grep -A 3 "rate name=\"inj_msgs" $STATUSFILE | grep last_15_min | cut -d\" -f 2 ` if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "Mail rate CRITICAL: $IPORTPAR msgs/hr" else exitstatus=${STATE_WARNING} echo "Mail rate WARNING: $IPORTPAR msgs/hr" fi else exitstatus=${STATE_OK} echo "Mail rate OK: $IPORTPAR msgs/hr" fi ;; conn_in) IPORTPAR=`grep conn_in $STATUSFILE | cut -d\" -f 4` if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "Incoming Connections CRITICAL: $IPORTPAR connections" else exitstatus=${STATE_WARNING} echo "Incoming Connections WARNING: $IPORTPAR connections" fi else exitstatus=${STATE_OK} echo "Incoming Connections OK: $IPORTPAR connections" fi ;; conn_out) IPORTPAR=`grep conn_out $STATUSFILE | cut -d\" -f 4` if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "Outgoing Connections CRITICAL: $IPORTPAR connections" else exitstatus=${STATE_WARNING} echo "Outgoing Connections WARNING: $IPORTPAR connections" fi else exitstatus=${STATE_OK} echo "Outgoing Connections OK: $IPORTPAR connections" fi ;; queue) IPORTPAR1=`grep \"attempted_recips $STATUSFILE | cut -d\" -f 4` IPORTPAR2=`grep unattempted_recips $STATUSFILE | cut -d\" -f 4` IPORTPAR=`expr $IPORTPAR1 + $IPORTPAR2` if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "Active Recipients CRITICAL: $IPORTPAR" else exitstatus=${STATE_WARNING} echo "Active Recipients WARNING: $IPORTPAR" fi else exitstatus=${STATE_OK} echo "Active Recipients OK: $IPORTPAR" fi ;; workqueue) IPORTPAR=`grep msgs_in_work_queue $STATUSFILE | cut -d\" -f 4` if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "Workqueue CRITICAL: $IPORTPAR msgs" else exitstatus=${STATE_WARNING} echo "Workqueue WARNING: $IPORTPAR msgs" fi else exitstatus=${STATE_OK} echo "Workqueue OK: $IPORTPAR msgs" fi ;; resourceconservation) IPORTPAR=`grep resource_conservation $STATUSFILE | cut -d\" -f 4` if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "Resource conservation mode CRITICAL: $IPORTPAR " else exitstatus=${STATE_WARNING} echo "Resource conservation mode WARNING: $IPORTPAR " fi else exitstatus=${STATE_OK} echo "Resource conservation mode OK: $IPORTPAR " fi ;; disk_util) IPORTPAR=`grep disk_utilization $STATUSFILE | cut -d\" -f 4` if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "Disk Utilization CRITICAL: $IPORTPAR " else exitstatus=${STATE_WARNING} echo "Disk Utilization WARNING: $IPORTPAR " fi else exitstatus=${STATE_OK} echo "Disk Utilization OK: $IPORTPAR " fi ;; msgs_in_quarantine) IPORTPAR=`grep msgs_in_quarantine $STATUSFILE | cut -d\" -f 4` if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "MSG In Quarantine CRITICAL: $IPORTPAR " else exitstatus=${STATE_WARNING} echo "MSG In Quarantine WARNING: $IPORTPAR " fi else exitstatus=${STATE_OK} echo "MSG In Quarantine OK: $IPORTPAR " fi ;; queuedisk_usage) IPORTPAR1=`grep kbytes_free $STATUSFILE | cut -d\" -f 4` IPORTPAR2=`grep kbytes_used $STATUSFILE | cut -d\" -f 4` IPORTPAR3="$(( $IPORTPAR1 / 100 ))" IPORTPAR="$(( $IPORTPAR2 / $IPORTPAR3 ))" if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "QueueDisk Usage CRITICAL: $IPORTPAR%" else exitstatus=${STATE_WARNING} echo "QueueDisk Usage WARNING: $IPORTPAR% " fi else exitstatus=${STATE_OK} echo "QueueDisk Usage OK: $IPORTPAR% " fi ;; release) IPORTPAR=`grep build $STATUSFILE | cut -d\" -f 2` exitstatus=${STATE_OK} echo "AsyncOS Release: $IPORTPAR" ;; uptime) IPORTPAR=`grep birth_time $STATUSFILE | cut -d\" -f 2` exitstatus=${STATE_OK} echo "Uptime: $IPORTPAR" ;; oldmessage) IPORTPAR=`grep "oldest_message" $STATUSFILE | cut -d\" -f 2` IPORTPAR2=`grep "oldest_message" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 ))" HUMAN_PAR="$(( $IPORTPAR / 3600 ))" if [ $IPORTPAR -ge $PAR_WARN ]; then if [ $IPORTPAR -ge $PAR_CRIT ]; then exitstatus=${STATE_CRITICAL} echo "Oldest Message CRITICAL: $HUMAN_PAR hours, MID: $IPORTPAR2" else exitstatus=${STATE_WARNING} echo "Oldest Message WARNING: $HUMAN_PAR hours, MID: $IPORTPAR2" fi else exitstatus=${STATE_OK} echo "Oldest Message OK: $HUMAN_PAR hours" fi ;; of_license) IPORTPAR=`grep "Outbreak Filters" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Outbreak Filters License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Outbreak License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Outbreak License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Outbreak License OK: $HUMAN_PAR days remaining" fi fi ;; ipspam_license) IPORTPAR=`grep "IronPort Anti-Spam" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "IronPort Anti-Spam License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "IronPort Anti-Spam License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "IronPort Anti-Spam License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "IronPort Anti-Spam License OK: $HUMAN_PAR days remaining" fi fi ;; sophos_license) IPORTPAR=`grep "Sophos" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Sophos License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Sophos License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Sophos Outbreak License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Sophos License OK: $HUMAN_PAR days remaining" fi fi ;; cm_license) IPORTPAR=`grep "Central Mgmt" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Centalized Management License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Central Mgmt License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Central Mgmt License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Central Mgmt License OK: $HUMAN_PAR days remaining" fi fi ;; mcafee_license) IPORTPAR=`grep "McAfee" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "McAfee License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "McAfee License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "McAfee License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "McAfee License OK: $HUMAN_PAR days remaining" fi fi ;; cloudmark_license) IPORTPAR=`grep "Cloudmark SP" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Cloudmark SP License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Cloudmark SP License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Cloudmark SP License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Cloudmark License OK: $HUMAN_PAR days remaining" fi fi ;; imageanalysis_license) IPORTPAR=`grep "IronPort Image Analysis" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "IronPort Image Analysis License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "IronPort Image Analysis License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "IronPort Image Analysis License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "IronPort Image Analysis License OK: $HUMAN_PAR days remaining" fi fi ;; encryption_license) IPORTPAR=`grep "IronPort Email Encryption" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "IronPort Email Encryption License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "IronPort Email Encryption License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "IronPort Email Encryption License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "IronPort Email Encryption License OK: $HUMAN_PAR days remaining" fi fi ;; dlp_license) IPORTPAR=`grep "RSA Email Data Loss Prevention" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "RSA Email Data Loss Prevention License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "RSA Email Data Loss Prevention License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "RSA Email Data Loss Prevention License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "RSA Email Data Loss Prevention License OK: $HUMAN_PAR days remaining" fi fi ;; bv_license) IPORTPAR=`grep "Bounce Verification" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" if [ $IPORTPAR = Dormant/Perpetual ]; then exitstatus=${STATE_OK} echo "Bounce Verification License OK: Perpetual" else HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Bounce Verification License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Bounce Verification License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Bounce Verification License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Bounce Verification License OK: $HUMAN_PAR days remaining" fi fi fi ;; receiving_license) IPORTPAR=`grep "Receiving" $STATUSFILE | cut -d\" -f 4` if [ $IPORTPAR = "" ]; then IPORTPAR=`grep "Incoming Mail Handling" $STATUSFILE | cut -d\" -f 4` fi PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" if [ $IPORTPAR = Dormant/Perpetual ]; then exitstatus=${STATE_OK} echo "Receiving License OK: Perpetual" else HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Receiving License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Receiving License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Receiving License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Receiving License OK: $HUMAN_PAR days remaining" fi fi fi ;; multiscan_license) IPORTPAR=`grep "Intelligent Multi-Scan" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Intelligent Multi-Scan License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Intelligent Multi-Scan License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Intelligent Multi-Scan License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Intelligent Multi-Scan License OK: $HUMAN_PAR days remaining" fi fi ;; tracking_license) IPORTPAR=`grep "Centralized Tracking" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Tracking License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Tracking License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Centralized Tracking License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Centralized Tracking License OK: $HUMAN_PAR days remaining" fi fi ;; reporting_license) IPORTPAR=`grep "Centralized Reporting" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" if [ $IPORTPAR = Dormant/Perpetual ]; then exitstatus=${STATE_OK} echo "Centralized Reporting License OK: Perpetual" else HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Reporting License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Reporting License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Centralized Reporting License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Centralized Reporting License OK: $HUMAN_PAR days remaining" fi fi fi ;; tracking_license) IPORTPAR=`grep "Centralized Tracking" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" if [ $IPORTPAR = Dormant/Perpetual ]; then exitstatus=${STATE_OK} echo "Centralized Tracking License OK: Perpetual" else HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Tracking License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Tracking License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Centralized Tracking License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Centralized Tracking License OK: $HUMAN_PAR days remaining" fi fi fi ;; emailtracking_license) IPORTPAR=`grep "Centralized Email Message Tracking" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" if [ $IPORTPAR = Dormant/Perpetual ]; then exitstatus=${STATE_OK} echo "Centralized Email Tracking License OK: Perpetual" else HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Email Tracking License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Email Tracking License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Centralized Email Tracking License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Centralized Email Tracking License OK: $HUMAN_PAR days remaining" fi fi fi ;; emailreporting_license) IPORTPAR=`grep "Centralized Email Reporting" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" if [ $IPORTPAR = Dormant/Perpetual ]; then exitstatus=${STATE_OK} echo "Centralized Email Reporting License OK: Perpetual" else HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Email Reporting License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Email Reporting License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Centralized Email Reporting License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Centralized Email Reporting License OK: $HUMAN_PAR days remaining" fi fi fi ;; webreporting_license) IPORTPAR=`grep "Centralized Web Reporting" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" if [ $IPORTPAR = Dormant/Perpetual ]; then exitstatus=${STATE_OK} echo "Centralized Web Reporting License OK: Perpetual" else HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Web Reporting License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Web Reporting License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Centralized Web Reporting License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Centralized Web Reporting License OK: $HUMAN_PAR days remaining" fi fi fi ;; configmanager_license) IPORTPAR=`grep "Centralized Configuration Manager" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" if [ $IPORTPAR = Dormant/Perpetual ]; then exitstatus=${STATE_OK} echo "Centralized Configuration Manager License OK: Perpetual" else HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Configuration Manager License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Configuration Manager License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Centralized Configuration Manager License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Centralized Configuration Manager License OK: $HUMAN_PAR days remaining" fi fi fi ;; spamquarantine_license) IPORTPAR=`grep "Centralized Spam Quarantine" $STATUSFILE | cut -d\" -f 4` PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))" PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))" if [ $IPORTPAR = Dormant/Perpetual ]; then exitstatus=${STATE_OK} echo "Centralized Spam Quarantine License OK: Perpetual" else HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))" if [ $IPORTPAR -le 0 ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Spam Quarantine License CRITICAL: Expired" else if [ $IPORTPAR -le $PAR_CRIT ]; then if [ $IPORTPAR -le $PAR_WARN ]; then exitstatus=${STATE_CRITICAL} echo "Centralized Spam Quarantine Manager License CRITICAL: $HUMAN_PAR days remaining" else exitstatus=${STATE_WARNING} echo "Centralized Spam Quarantine License WARNING: $HUMAN_PAR days remaining" fi else exitstatus=${STATE_OK} echo "Centralized Spam Quarantine License OK: $HUMAN_PAR days remaining" fi fi fi ;; *) print_usage exit $STATE_OK esac rm -rf $STATUSFILE exit $exitstatus