Build precise queries to find exactly what you need
Press ESC to close
Join our next live webinar: “Advanced Nagios Monitoring Techniques” – Register Now
Your review has been submitted and is pending approval.
** Please note that this script was originally written by Lukasz Gogolin ([email protected]). I only i proved and bug fix to make sure it run smoothly.
Script were written in BASH, tested on CentOS 6.X, Nagios 3.X
Current Version
v1.0
Last Release Date
August 21, 2015
Owner
Nestor@TO
Compatible With
This is a great script that various people have improved. I've been using a forked version on github for some years. We recently improved it to use '/proc/meminfo' output so it its less brittle to changes in 'free' output. So it works with almost all Linux releases/versions. Small improvements to the chart also. https://github.com/whereisaaron/linux-check-mem-nagios-plugin
Hi, Here is a modification for more accurate results on CentOS/RHEL 6.x. This changes the memUsed_m variable to use a custom calculation instead of just using the Used number from free -m. This is similar to what the other reviewer did for 7.x systems. It uses the number from memTotal_m and then subtracts memFree_m, memBuffer_m, and memCache_m to come up with memUsed_m. You need to comment the original memUsed_m line then add a line after memCache_m as shown: memTotal_m=`echo "$FreeM" |grep Mem |awk '{print $2}'` # Comment This Line #memUsed_m=`echo "$FreeM" |grep Mem |awk '{print $3}'` memFree_m=`echo "$FreeM" |grep Mem |awk '{print $4}'` memBuffer_m=`echo "$FreeM" |grep Mem |awk '{print $6}'` memCache_m=`echo "$FreeM" |grep Mem |awk '{print $7}'` #Add the following line: memUsed_m=$(($memTotal_m-$memFree_m-$memBuffer_m-$memCache_m)) memUsedPrc=`echo $((($memUsed_m*100)/$memTotal_m))||cut -d. -f1` Thanks for the great plugin!
Centos 7 Free command output changed a bit, plus I would count cached memory as free. #!/bin/bash if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ]; then FreeM=`free -m` memTotal_m=`echo "$FreeM" |grep Mem |awk '{print $2}'` memUsed_m=`echo "$FreeM" |grep Mem |awk '{print $3}'` memFree_m=`echo "$FreeM" |grep Mem |awk '{print $4}'` memBuffer_cache_m=`echo "$FreeM" |grep Mem |awk '{print $6}'` memAvailable_m=`echo "$FreeM" |grep Mem |awk '{print $7}'` memUsed_m=$(($memTotal_m-$memFree_m-$memBuffer_cache_m)) memUsedPrc=`echo $((($memUsed_m*100)/$memTotal_m))||cut -d. -f1` if [ "$memUsedPrc" -ge "$4" ]; then echo "Memory: CRITICAL Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; BUFFER/CACHE=$memBuffer_cache_m;;;; AVAILABLE=$memAvailable_m;;;;" exit 2 elif [ "$memUsedPrc" -ge "$2" ]; then echo "Memory: WARNING Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; BUFFER/CACHE=$memBuffer_cache_m;;;; AVAILABLE=$memAvailable_m;;;;" exit 1 else echo "Memory: OK Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; BUFFER/CACHE=$memBuffer_cache_m;;;; AVAILABLE=$memAvailable_m;;;;" exit 0 fi else # If inputs are not as expected, print help. sName="`echo $0|awk -F '/' '{print $NF}'`" echo -e "nntt### $sName Version 2.1###n" echo -e "# Usage:t$sName -w -c " echo -e "tt= warnlevel and critlevel is percentage value without %n" echo "# EXAMPLE:t/usr/lib64/nagios/plugins/$sName -w 80 -c 90" echo -e "nCopyright (C) 2012 Lukasz Gogolin ([email protected]), improved by Nestor 2015nn" exit fi
Thanks making it compatible for CentOS 7. My first few contributions, i just realize I didn't put OS version. I will try to update the pages descriptions. Thanks!
You must be logged in to submit a review.
To:
From: