githubEdit

check_cpu_cisco

Check CPU Simple

#!/bin/bash

#Parse command-line arguments,
while getopts "H:up:A:X:w©" opt; do
  case $opt in
    H) HOST="$OPTARG" ;;
    u) USER="$OPTARG" ;;
    a) AUTH_PASS="$OPTARG" ;;
    p) PRIV_PASS="$OPTARG" ;;
    A) AUTH_PROTO="$OPTARG" ;;  # e.g., SHA or MD5
    X) PRIV_PROTO="$OPTARG" ;;  # e.g., AES or DES
    w) WARNING="$OPTARG" ;;
    c) CRITICAL="$OPTARG" ;;
    *)
      echo "Usage: $0 -H host -u user -a auth_pass -p priv_pass -A auth_proto -X priv_proto [-w warning] [-c critical]"
      exit 3
      ;;
  esac
done

# Check if WARNING or CRITICAL are still empty or hold a flag
[[ -z "$WARNING" || "$WARNING" == -* ]] && WARNING=70
[[ -z "$CRITICAL" || "$CRITICAL" == -* ]] && CRITICAL=90

#Validate required variables,
if [[ -z "$HOST"  -z "$USER"  -z "$AUTH_PASS"  -z "$PRIV_PASS"  -z "$AUTH_PROTO"  -z "$PRIV_PROTO" ]]; then
  echo "UNKNOWN - Missing required arguments"
  exit 3
fi

#Cisco 5-second CPU utilization OID,
CPU_OID="1.3.6.1.4.1.9.9.109.1.1.1.1.6.7"

#Get CPU usage,
CPU_USAGE=$(snmpget -v3 -u "$USER" -a "$AUTH_PROTO" -A "$AUTH_PASS" -x "$PRIV_PROTO" -X "$PRIV_PASS" -l authPriv "$HOST" "$CPU_OID" 2>/dev/null | awk '{print $NF}')

#Validate response,
if [[ -z "$CPU_USAGE"  ! "$CPU_USAGE" =~ ^[0-9]+$ ]]; then
  echo "UNKNOWN - Unable to retrieve CPU usage"
  exit 3
fi

#Determine Nagios status,
if (( CPU_USAGE >= CRITICAL )); then
  echo "CRITICAL - CPU usage is ${CPU_USAGE}% on $HOST"
  exit 2
elif (( CPU_USAGE >= WARNING )); then
  echo "WARNING - CPU usage is ${CPU_USAGE}% on $HOST"
  exit 1
else
  echo "OK - CPU usage is ${CPU_USAGE}% on $HOST"
  exit 0
fi

Check CPU

Python version

Last updated