#!/bin/bash # # simple ironport status plugin # #%# capabilities=conf COMMUNITY=${snmp_community:-v3get} PASSWORD=${snmp_password:-your_secret_snmp_password_here} OIDBASE=${snmp_oidbase:-1.3.6.1.4.1.15497.1.1.1} IRONPORT="" DEBUG=0 RETURN_VAL="" HOST="" function debug { if [ $DEBUG -ne 0 ]; then echo "%> " "$1" fi } function send_config { echo 'graph_title Ironport Status' echo 'graph_args --base 10000 -l 0' echo 'graph_vlabel %%' echo 'ipstatus_memory.label Memory utilisation' echo 'ipstatus_cpu.label CPU utilisation' echo 'ipstatus_diskio.label Disk IO utilisation' echo 'ipstatus_queue.label queue utilisation' } function get_data() { oid=$1 snmp_query="/usr/bin/snmpwalk -Ov -v 3 -l authNoPriv -u ${COMMUNITY} -a MD5 -A ${PASSWORD} ${IRONPORT} ${OIDBASE}.${oid}.0" debug "$snmp_query" RETURN_VAL=$($snmp_query | awk '{print $2}') return 0 } function send_stats { get_data 1 echo "ipstatus_memory.value ${RETURN_VAL}" get_data 2 echo "ipstatus_cpu.value ${RETURN_VAL}" get_data 3 echo "ipstatus_diskio.value ${RETURN_VAL}" get_data 4 echo "ipstatus_queue.value ${RETURN_VAL}" } function main { IRONPORT=$(echo $0 | sed 's/.*\/ipstatus_\([^_]\+\)/\1/') debug $HOST if [ "$1" = "autoconf" ]; then echo yes exit 0 fi if [ "$1" = "config" ]; then send_config exit 0 fi send_stats } main $@