#!/usr/bin/bash
host=`hostname`
#DISK#
DUSAGE=`df -h | awk '{print $(NF-1)}' | awk -F"%" '{print $1}' | sort -n | tail -1`
if [ "$DUSAGE" -gt 80 ]
then
DISK="NOK"
else
DISK="OK"
fi
#MEMORY#
free=`vmstat 1 1 | tail -1 | awk '{print $5}'`
mem=`/usr/sbin/prtconf|grep Memory |awk '{print $3}'`
MEMFREE=`echo "($free * 100) / ($mem * 1024)" | bc`
if [ "$MEMFREE" -lt 6 ]
then
MEMORY="NOK"
else
MEMORY="OK"
fi
#SWAP#
free=`/usr/sbin/swap -l | tail -1 | awk '{print $NF}' ` ; swap=`/usr/sbin/swap -l | tail -1 | awk '{print $(NF-1)}'`
SWAPFREE=`echo "($free * 100)/ $swap" | bc`
if [ "$SWAPFREE" -lt 30 ]
then
SWAP="NOK"
else
SWAP="OK"
fi
#debug#
readCfg=/IN/service_packages/SMS/bin/cmnConfigRead
. /IN/service_packages/ACS/.profile-scp
ESERV_CONFIG_FILE=/IN/service_packages/SLEE/etc/sua_if_SMS.config
export ESERV_CONFIG_FILE
DEBUGSMS=`$readCfg "SUA.log"`
ESERV_CONFIG_FILE=/IN/service_packages/SLEE/etc/sua_if_V.config
export ESERV_CONFIG_FILE
DEBUGV=`$readCfg "SUA.log"`
ESERV_CONFIG_FILE=/IN/service_packages/SLEE/etc/sua_if_USSD.config
export ESERV_CONFIG_FILE
DEBUGUSSD=`$readCfg "SUA.log"`
EAXTRACE=`grep traceAll /IN/service_packages/eserv.config | awk -F"=" '{print $2}'`
APPDEBUG=`ls -lrt /IN/service_packages/SUPPORT/etc/slee-debug* | wc -l | awk '{print $1}'`
if [ "$DEBUGSMS" = "true" -o "$DEBUGV" = "true" -o "$DEBUGUSSD" = "true" -o "$EAXTRACE" -ge 1 -o "$APPDEBUG" -gt 0 ]
then
DEBUG="NOK"
else
DEBUG=OK
fi
#ZFS#
OFFLINE=`zpool status| egrep -i 'DEGRADED|FAULTED|OFFLINE' | wc -l | awk '{print $1}'`
if [ "$OFFLINE" -gt 0 ]
then
VERITAS=NOK
else
VERITAS=OK
fi
#SYSTEM ERROR LOG#
ERROR=`grep -v "user." /var/adm/messages | grep -v "last message repeated " | grep -v "auth." | grep ID | wc -l | awk '{print $1}'`
if [ "$ERROR" -gt 0 ]
then
LOG="NOK"
else
LOG=OK
fi
#SLEE PROCESS#
SLEEPROCESS=`pslist | grep "SLEE Did not match" | wc -l| awk '{print $1}'`
if [ "$SLEEPROCESS" -gt 0 ]
then
SLEE="NOK"
else
SLEE=OK
fi
#SLEE RESOURCES#
. /home/nagios/.profile
SLEERESOURCES=`/usr/local/nagios/libexec/check_slee_res.sh -D 170k -E 360k -C 50k -d 150k -e 330k -c 40k | awk -F"|" '{print $1 $2}'`
if [ "$?" -gt 0 ]
then
RESOURCES=NOK
else
RESOURCES=OK
fi
#LINK#
var=0
a=`kstat -s ifspeed | grep 1000000000 | wc -l`
if [ "$a" -lt 6 ]
then
LINK_STATUS=NOK
else
LINK_STATUS=OK
fi
#CAPACITY#
SLP=`prstat -u acs_oper -cLvm -n 100 1 3 |egrep -i "xms|slee_acs|eax|diameterBeClient|rims|ussd|sua|ses|dap" | grep -v Total| awk 'BEGIN {Max=100} {if (Max > $9) Max=$9} END {print Max}'`
if [ "$SLP" -lt 40 ]
then
CAPACITY=NOK
else
CAPACITY=OK
fi
#HARDWARE#
/usr/sbin/prtdiag
STATUS=`echo $?`
if [ "$STATUS" -eq 0 ]
then
HARDWARE=OK
else
HARDWARE=NOK
fi
echo "$host | $DISK | $MEMORY | $SWAP | $DEBUG | $HARDWARE | $VERITAS | $LOG | $SLEE | $RESOURCES | $LINK_STATUS | $CAPACITY |DISK USAGE=$DUSAGE, MEMORY FREE=$MEMFREE, SWAP FREE=$SWAPFREE, sua_if_SMS=$DEBUGSMS, sua_if_V=$DEBUGV, sua_if_USSD=$DEBUGUSSD, eax TRACE=$EAXTRACE, APPDEBUG=$APPDEBUG, DISK OFFLINE=$OFFLINE, error log $ERROR times, slee process not started $SLEEPROCESS, $SLEERESOURCES, $LINK, KAPASITAS = $SLP "
host=`hostname`
#DISK#
DUSAGE=`df -h | awk '{print $(NF-1)}' | awk -F"%" '{print $1}' | sort -n | tail -1`
if [ "$DUSAGE" -gt 80 ]
then
DISK="NOK"
else
DISK="OK"
fi
#MEMORY#
free=`vmstat 1 1 | tail -1 | awk '{print $5}'`
mem=`/usr/sbin/prtconf|grep Memory |awk '{print $3}'`
MEMFREE=`echo "($free * 100) / ($mem * 1024)" | bc`
if [ "$MEMFREE" -lt 6 ]
then
MEMORY="NOK"
else
MEMORY="OK"
fi
#SWAP#
free=`/usr/sbin/swap -l | tail -1 | awk '{print $NF}' ` ; swap=`/usr/sbin/swap -l | tail -1 | awk '{print $(NF-1)}'`
SWAPFREE=`echo "($free * 100)/ $swap" | bc`
if [ "$SWAPFREE" -lt 30 ]
then
SWAP="NOK"
else
SWAP="OK"
fi
#debug#
readCfg=/IN/service_packages/SMS/bin/cmnConfigRead
. /IN/service_packages/ACS/.profile-scp
ESERV_CONFIG_FILE=/IN/service_packages/SLEE/etc/sua_if_SMS.config
export ESERV_CONFIG_FILE
DEBUGSMS=`$readCfg "SUA.log"`
ESERV_CONFIG_FILE=/IN/service_packages/SLEE/etc/sua_if_V.config
export ESERV_CONFIG_FILE
DEBUGV=`$readCfg "SUA.log"`
ESERV_CONFIG_FILE=/IN/service_packages/SLEE/etc/sua_if_USSD.config
export ESERV_CONFIG_FILE
DEBUGUSSD=`$readCfg "SUA.log"`
EAXTRACE=`grep traceAll /IN/service_packages/eserv.config | awk -F"=" '{print $2}'`
APPDEBUG=`ls -lrt /IN/service_packages/SUPPORT/etc/slee-debug* | wc -l | awk '{print $1}'`
if [ "$DEBUGSMS" = "true" -o "$DEBUGV" = "true" -o "$DEBUGUSSD" = "true" -o "$EAXTRACE" -ge 1 -o "$APPDEBUG" -gt 0 ]
then
DEBUG="NOK"
else
DEBUG=OK
fi
#ZFS#
OFFLINE=`zpool status| egrep -i 'DEGRADED|FAULTED|OFFLINE' | wc -l | awk '{print $1}'`
if [ "$OFFLINE" -gt 0 ]
then
VERITAS=NOK
else
VERITAS=OK
fi
#SYSTEM ERROR LOG#
ERROR=`grep -v "user." /var/adm/messages | grep -v "last message repeated " | grep -v "auth." | grep ID | wc -l | awk '{print $1}'`
if [ "$ERROR" -gt 0 ]
then
LOG="NOK"
else
LOG=OK
fi
#SLEE PROCESS#
SLEEPROCESS=`pslist | grep "SLEE Did not match" | wc -l| awk '{print $1}'`
if [ "$SLEEPROCESS" -gt 0 ]
then
SLEE="NOK"
else
SLEE=OK
fi
#SLEE RESOURCES#
. /home/nagios/.profile
SLEERESOURCES=`/usr/local/nagios/libexec/check_slee_res.sh -D 170k -E 360k -C 50k -d 150k -e 330k -c 40k | awk -F"|" '{print $1 $2}'`
if [ "$?" -gt 0 ]
then
RESOURCES=NOK
else
RESOURCES=OK
fi
#LINK#
var=0
a=`kstat -s ifspeed | grep 1000000000 | wc -l`
if [ "$a" -lt 6 ]
then
LINK_STATUS=NOK
else
LINK_STATUS=OK
fi
#CAPACITY#
SLP=`prstat -u acs_oper -cLvm -n 100 1 3 |egrep -i "xms|slee_acs|eax|diameterBeClient|rims|ussd|sua|ses|dap" | grep -v Total| awk 'BEGIN {Max=100} {if (Max > $9) Max=$9} END {print Max}'`
if [ "$SLP" -lt 40 ]
then
CAPACITY=NOK
else
CAPACITY=OK
fi
#HARDWARE#
/usr/sbin/prtdiag
STATUS=`echo $?`
if [ "$STATUS" -eq 0 ]
then
HARDWARE=OK
else
HARDWARE=NOK
fi
echo "$host | $DISK | $MEMORY | $SWAP | $DEBUG | $HARDWARE | $VERITAS | $LOG | $SLEE | $RESOURCES | $LINK_STATUS | $CAPACITY |DISK USAGE=$DUSAGE, MEMORY FREE=$MEMFREE, SWAP FREE=$SWAPFREE, sua_if_SMS=$DEBUGSMS, sua_if_V=$DEBUGV, sua_if_USSD=$DEBUGUSSD, eax TRACE=$EAXTRACE, APPDEBUG=$APPDEBUG, DISK OFFLINE=$OFFLINE, error log $ERROR times, slee process not started $SLEEPROCESS, $SLEERESOURCES, $LINK, KAPASITAS = $SLP "