• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
sharadchhetri

sharadchhetri

Tutorials On Linux, Unix & Open Source

  • Home
  • Linux Commands
  • Resources
    • Learn Linux
  • My WordPress plugins

check_memory unable to read output Nagios nrpe

July 2, 2013 by Sharad Chhetri Leave a Comment

check_memory unable to read output Nagios nrpe

While setting up the nagios Monitoring system in my new network.I decided to use check_memory plugin. I downloaded the plugin from exchange.nagios.com
Here below one is given link.
http://exchange.nagios.org/directory/Plugins/Operating-Systems/Linux/check_mem_avail/details

While working I got this error from check_memory plugin “NRPE : unable to read output” . After debugging I found the NRPE was not able to read the output from check_memory plugin because of in if statement in bash script [[ ]] was used,so I modify it to [ ] .

To implement the check_memory plugin gawk and bc command should work.So I installed the gawk and bc command in system

apt-get install gawk bc

Now copy paste the given below code and make a file check_memory and give it execute permission by command chmod 755 check_memory .And put it at nagios plugin directory. In my case it is /usr/lib/nagios/plugins


vi check_memory

# $Id: check_mem,v 1.3 2008/09/17 21:47:03 nagios Exp nagios $
#
#  Revision 1.4  2013/07/02 02:09 PM IST  nagios
#   Author : sharad kumar chhetri (for revision 1.4)
#
# $Log: check_mem,v $
# Revision 1.3  2008/09/17 21:47:03  nagios
# dropped free in favor of using /proc/meminfo
#
# Revision 1.2  2008/09/17 21:00:24  nagios
# added usage statement and input validation from http://www.nagiosexchange.org/cgi-bin/page.cgi?g=2099.html;d=1
# respects to the author
#
# Revision 1.1  2008/09/17 20:57:38  nagios
# Initial revision
#
# This plugin excludes the system cache and buffer, because on systems with stable memory
# usage it is perfectly normal for system cache to fill in all available memory
# (most of it can be freed at any time if applications requires it).
# Please keep a margin for system cache and buffers when setting thresholds.
#
#!/bin/bash
USAGE="`basename $0` [-w|--warning] [-c|--critical]"
THRESHOLD_USAGE="WARNING threshold must be greater than CRITICAL: `basename $0` $*"

# print usage
if [ $# -lt 4 ]
then
	echo ""
	echo "Wrong Syntax: `basename $0` $*"
	echo ""
	echo "Usage: $USAGE"
	echo ""
	exit 0
fi
# read input
while [ $# -gt 0 ]
  do
        case "$1" in
               -w|--warning)
               shift
               warning=$1
        ;;
               -c|--critical)
               shift
               critical=$1
        ;;
        esac
        shift
  done
# verify input
if [[ $warning -eq $critical || $warning -lt $critical ]]
then
	echo ""
	echo "$THRESHOLD_USAGE"
	echo ""
        echo "Usage: $USAGE"
	echo ""
        exit 0
fi

# Total physical memory
total=`cat /proc/meminfo |head -n 1 |tail -n 1| gawk '{print $2}'`

# Free physical memory
free=`cat /proc/meminfo |head -n 2 |tail -n 1| gawk '{print $2}'`

# Buffers
buffers=`cat /proc/meminfo |head -n 3 |tail -n 1| gawk '{print $2}'`

# Cached
cached=`cat /proc/meminfo |head -n 4 |tail -n 1| gawk '{print $2}'`

#Available physical memory
available=`echo "$free+$buffers+$cached" | bc`

# make it into % percent free = ((free mem / total mem) * 100)
percent=`echo "scale=2; $available/$total*100" | bc`

#echo $total
#echo $free
#echo $buffers
#echo $cached
#echo $available
#echo $percent

#echo $critical
#echo $warning

#echo `echo "$percent <=  $critical"|bc`
#echo `echo "$percent <=  $warning"|bc`
#echo `echo "$percent >  $warning"|bc`

if [ "`echo "$percent <=  $critical"|bc`" -eq 1 ]
	then
		echo "CRITICAL - $available KB ($percent%) Free Memory"
		exit 2
fi
if [ "`echo "$percent <=  $warning"|bc`" -eq 1 ]
        then
                echo "WARNING - $available KB ($percent%) Free Memory"
                exit 1
fi
if [ "`echo "$percent >  $warning"|bc`" -eq 1 ]
        then
                echo "OK - $availabe KB ($percent%) Free Memory"
                exit 0
fi

Share this:

  • Twitter
  • Facebook
  • More
  • Print
  • Email
  • LinkedIn
  • Reddit
  • Tumblr
  • Pinterest
  • Pocket
  • Telegram
  • WhatsApp
  • Mastodon

Related posts:

  1. How to install and configure nagios nrpe client in Ubuntu with apt-get command
  2. How to install and configure nagios nrpe in CentOS and Red Hat
  3. Error: Could not open command file ‘/usr/local/nagios/var/rw/nagios.cmd’ for update!
  4. Read the file inside compressed .gz files without extract
  5. Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.0-release/Latest/
  6. How to fix read only USB pen drive in Ubuntu
  7. PHP Warning: Unknown: Unable to allocate memory for pool. in Unknown on line 0
  8. Unable to complete install:’unsupported configuration hda-duplex not supported in this Qemu binary’
  9. WordPress error “Unable to create new image”
  10. Print grep command output without seperator

Filed Under: Linux, Monitoring Server Tagged With: Nagios

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

Our Social Media Presence

  • Facebook
  • GitHub
  • Twitter

Linux Command

What is Linux Internal And External Command

Linux Basic Commands With Examples For Every Beginner

tr command to convert lines to space , tab and vertical tab

smbpasswd command not found on CentOS 7 and RHEL 7

Solution : semanage command not found

Unix / Linux : How to print duplicate lines from file

More Posts from this Category

You Might Like These Articles!

simplecodesyntax wordpress plugin

SimpleCodeSyntax : My Another WordPress Plugin

Install Nginx

How To Install Nginx On Ubuntu 22.04 LTS

Install Latest Git package in Ubuntu Operating System

How To Always Install Latest Git Package In Ubuntu Operating System

Bash script for installing VirtualBox on Ubuntu 22.04 LTS Desktop

Install VirtualBox On Ubuntu 22.04 LTS Desktop (Bash Script)

libfuse

dlopen(): error loading libfuse.so.2 – Got Error On Ubuntu

Failed to open/create the internal network

VirtualBox Error: Failed to open/create the internal network

Always Useful Tips And Tricks

How to find swap partition or file in linux

How to set JAVA environment variables in Linux

How to encode and decode the strings with base64

Convert new line to space by using sed command

Install and optimize the png file by using optipng

Learn Linux Date Command With Examples

Yum Error database disk image is malformed

Explore 90+ Article On "Linux Tips And Tricks"

Copyright © 2023 ยท
The material in this site cannot be republished either online or offline, without our permission.
Proudly Blogging From Bharat.

  • Contact
  • About Me
  • My WordPress plugins
  • Privacy Policy