Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > 5179e1fd279995c99a851f747cf31e4c > files > 377

nagios-check_mk-1.1.8-1.mga1.noarch.rpm

#!/bin/sh
# This check checks the overall state of a service group. 
# It fetches the current state of all services of a group
# via livestatus (the path to the livestatus socket is
# provided as a third, optional parameter).
# 
# Provide the name of the service group as first
# parameter.
#
# If you specify a number NUM as second parameter,
# then the state of this check is not considered to
# be the worst service state of the group but the
# NUM'th worst state. E.g. if there is one critical
# and one warning service, then specifying 2 will
# result in a warning state and 3 in a OK state.
#
# WARN is considered to be worse than UNKNOWN.

GROUPNAME=$1
if [ -z "$GROUPNAME" ] ; then
    echo "Usage: $0 SERVICE_GROUP [NUM [SOCKET] ]"
    exit 3
fi
NUM=${2:-1}
SOCKET=${3:-/var/run/nagios/rw/live}

check ()
{
  IFS=\; read COUNT OK WARN CRIT UNKNOWN
  if [ $CRIT -ge $NUM ] 
  then
      status=CRIT
      exitcode=2
  elif [ $((CRIT + WARN)) -ge $NUM ] ; then
      status=WARN
      exitcode=1
  elif [ $((CRIT + WARN + UNKNOWN)) -ge $NUM ] ; then
      status=UNKNOWN
      exitcode=3
  else
      status=OK
      exitcode=0
  fi
  echo "$status - $COUNT services: $CRIT critical, $WARN warning, $UNKNOWN unknown, $OK ok"
  exit $exitcode
}

cat <<EOF | unixcat $SOCKET | check
GET services
Filter: groups >= $GROUPNAME
Stats: last_hard_state >= 0
Stats: last_hard_state = 0
Stats: last_hard_state = 1
Stats: last_hard_state = 2
Stats: last_hard_state = 3
EOF