bundles/sshmon: import from work repository
This commit is contained in:
parent
eaf268aea9
commit
c7362df6c4
12 changed files with 773 additions and 0 deletions
86
bundles/sshmon/files/check_ram
Normal file
86
bundles/sshmon/files/check_ram
Normal file
|
@ -0,0 +1,86 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Plugin to check free ram space
|
||||
# using check_by_ssh
|
||||
# by Markus Walther (voltshock@gmx.de)
|
||||
# The script needs a working check_by_ssh connection and needs to run on the client to check it
|
||||
#
|
||||
# Command-Line for check_by_ssh
|
||||
# command_line $USER1$/check_by_ssh -H $HOSTNAME$ -p $ARG1$ -C "$ARG2$ $ARG3$ $ARG4$ $ARG5$ $ARG6$"
|
||||
#
|
||||
# Command-Line for service (example)
|
||||
# check_by_ssh!82!/nagios/check_ram.sh!20!10
|
||||
#
|
||||
##########################################################
|
||||
|
||||
case $1 in
|
||||
--help | -h )
|
||||
echo "Usage: check_ram [warn] [crit]"
|
||||
echo " [warn] and [crit] as int"
|
||||
echo " Example: check_ram 20 10"
|
||||
exit 3
|
||||
;;
|
||||
* )
|
||||
;;
|
||||
esac
|
||||
|
||||
warn=$1
|
||||
crit=$2
|
||||
|
||||
if [[ "$1" == disabled ]]
|
||||
then
|
||||
echo "OK: Check disabled"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! "$1" -o ! "$2" ]; then
|
||||
echo "Usage: check_ram [warn] [crit]"
|
||||
echo " [warn] and [crit] as int"
|
||||
echo " Example: check_ram 20 10"
|
||||
echo "Unknown: Options missing: using default (warn=20, crit=10)"
|
||||
warn=`echo $((20))`
|
||||
crit=`echo $((10))`
|
||||
fi
|
||||
|
||||
full=`free | grep Mem | sed -r 's/\ +/\ /g' | cut -d \ -f 2`
|
||||
free=`free | grep "buffers/cache" | sed -r 's/\ +/\ /g' | cut -d \ -f 4`
|
||||
if [ "x$free" = "x" ]; then
|
||||
# The output of "free" has changed in winter 2014: It removed the
|
||||
# "buffers/cache" line, but added an "available" column. We're going
|
||||
# to use that new one.
|
||||
free=`free | grep Mem | sed -r 's/\ +/\ /g' | cut -d \ -f 7`
|
||||
fi
|
||||
|
||||
if [ -r /proc/spl/kstat/zfs/arcstats ]
|
||||
then
|
||||
# This system is using ZFS. ZFS does not use the standard I/O
|
||||
# caching mechanism of Linux. As a result, ZFS caches appear as "in
|
||||
# use by an application", which is not entirely true, since they
|
||||
# will be freed when actual applications need memory.
|
||||
#
|
||||
# Add the current size of the ZFS ARC to the amount of free memory.
|
||||
free=$(gawk -vfree="$free" '/^size / { printf "%d\n", free + $3 / 1024 }' \
|
||||
/proc/spl/kstat/zfs/arcstats)
|
||||
fi
|
||||
|
||||
if [ "$warn" -lt "$crit" -o "$warn" -eq "$crit" ]; then
|
||||
echo "Unknown: [warn] must be larger than [crit]"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
use=`echo $(( ($free * 100) / $full ))`
|
||||
|
||||
if [ "$use" -gt "$warn" -o "$use" -eq "$warn" ]; then
|
||||
echo "OK: $use% free memory"
|
||||
exit 0
|
||||
elif [ "$use" -lt "$warn" -a "$use" -gt "$crit" ]; then
|
||||
echo "Warning: $use% free memory"
|
||||
exit 1
|
||||
elif [ "$use" -eq "$crit" -o "$use" -lt "$crit" ]; then
|
||||
echo "Critical: $use% free memory"
|
||||
exit 2
|
||||
else
|
||||
echo "Unknown"
|
||||
exit 3
|
||||
fi
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue