Nagios check fortimail queue
From Initech Technical Wiki
#!/bin/bash SAVEIFS=$IFS IFS=$(/bin/echo -en "\n\b") function USAGE { echo echo "####################################################################" echo "# File name : nagios_check_juniper_virtual_chassis" echo "# Created by : Tim Price - Initech Consulting ( for any questions contact me on tim@initech.nz )" echo "# Created date : 08/01/2018" echo "# Version : 1.0" echo "# Information : Check FortiMail Queues and message counts in each queue" echo "# Usage : $0 -H host -C community -w warning_count -c critical_count" echo "####################################################################" echo } while getopts ":H:C:w:c:" opt; do case $opt in H) HOST="$OPTARG" ;; C) SNMP_COMMUNITY="$OPTARG" ;; w) WARN="$OPTARG" ;; c) CRIT="$OPTARG" ;; \?) USAGE ;; esac done if [ "$HOST" == "" ] || [ "$SNMP_COMMUNITY" == "" ] || [ "$WARN" == "" ] || [ "$CRIT" == "" ]; then USAGE exit 0 fi EXIT_CODE=0 QUEUES=$(snmpwalk -On -v2c -c $SNMP_COMMUNITY $HOST .1.3.6.1.4.1.12356.105.1.103.2.1.1 | awk '{print $4}') for QUEUE in $QUEUES; do QUEUE_NAME=$(snmpget -On -v2c -c $SNMP_COMMUNITY $HOST .1.3.6.1.4.1.12356.105.1.103.2.1.2.$QUEUE | awk -F\" '{print $2}') QUEUE_COUNT=$(snmpget -On -v2c -c $SNMP_COMMUNITY $HOST .1.3.6.1.4.1.12356.105.1.103.2.1.3.$QUEUE | awk '{print $4}') if [[ $QUEUE_COUNT -ge $CRIT ]]; then echo "CRITICAL - $QUEUE_NAME: $QUEUE_COUNT messages" EXIT_CODE=2 elif [[ $QUEUE_COUNT -ge $WARN ]]; then echo "WARNING - $QUEUE_NAME: $QUEUE_COUNT messages" if [ ${EXIT_CODE} -eq 0 ]; then EXIT_CODE=1 fi else echo "OK - $QUEUE_NAME: $QUEUE_COUNT messages" fi done IFS=$SAVEIFS exit $EXIT_CODE