Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1


Remember Me

Directory Tree

check_memcached III

Current Version
Last Release Date
Compatible With
  • Nagios 3.x
check_memcached.tar.gzcheck_memcached 0.5
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
plugin to check memcached's statistics with configurable TCP/IP port and option to check thresholds for any item.

the conofigurable port allows to check memcached instances in diferent ports and other queue managers based on the same protocol, like twitter's kestrel queue manager.

Now using Netcat, thanks to Robert Hugh
To run this plugin it's necessary to have the command "nc" installed.

It was tested only with BASH. To use with other shells, you may need to adjust it. if you do, please let me know.

it assumes memcached's default port if not specified.

V. 0.2: fixed the SED options to work on FreeBSD out of the box. thanks to all who pointed this out.

V. 0.3: there was a problem with division by zero if all the stats were zero. fixed.

v. 0.4: now you can retrieve the value for any individual stat and check for warning/critical levels.

v. 0.5: Applied patch by Robert Hugh, replacing expect by netcat (nc)
Reviews (6)
byowenmarinas, February 29, 2012
no need of except changing the get_stats function to ...


RESULT=`echo "stats" | nc $2 $3`
STATS=`echo "$RESULT" | grep "${1}"|sed -e 's/\r//'`
printf "%s\n" "$STATS"
return $__RET
bydarkweaver87, January 15, 2012

Just a small path to make it work with a french environment (colon instead of dot in floating numbers) and bonded machines:

# diff -uw /usr/lib/nagios/plugins/check_memcached check_memcached
--- /usr/lib/nagios/plugins/check_memcached 2012-01-16 11:47:41.000000000 +0100
+++ check_memcached 2012-01-16 11:50:58.000000000 +0100
@@ -6,6 +6,12 @@
# Not sure if this script will run on CSH, KSH or other shells
# Anyone who makes it work on those, please let me know.
# Bento Loewenstein
+printf '%f' 0 | grep ',' > /dev/null
+if [ "$?" -eq "0" ] ; then
+ DOT=false

@@ -61,8 +67,12 @@
__DISPR=`echo "$__RATE+0.5"|bc -l`
+ if $DOT; then
printf " %1.0f%%|rate=%1.12g" "$__DISPR" "$__RATE"
+ printf " %1.0f%%|rate=%1.12g" "`echo $__DISPR | sed -e 's/\./,/g'`" "`echo $__RATE | sed -e 's/\./,/g'`"
+ fi
+ else
printf " No rate"
@@ -118,7 +128,7 @@

if [ -z "$HSFLAG" ]
- HOST=$(/sbin/ifconfig | grep -A1 eth0 | grep inet | sed -e 's/.* addr:\([^ ]\+\) .*/\1/')
+ HOST=$(/sbin/ip addr | grep global | head -n 1 | sed -r 's/.* (.*)\/[0-9]+ .*/\1/g')

case $OPER in

By the way, thanks for your good job !

byblutgens, October 14, 2011
Had to edit the other ("-v other" for connections)function to allow performance data on connections.
bysteve.lippert, April 18, 2011
1 of 1 people found this review helpful
Pretty well written plug-in, but a little slow to execute, at least on my systems (CentOS 5). I lowered the TIMEOUT value on line 24, as a typical plugin run was this value plus 1 second. I also added performance data to "other" checks, so I can graph current items and connections.
bycrberus, September 22, 2010
2 of 2 people found this review helpful
Works great on Linux out of the box.

Requires a slight modification to the sed substitution statement to work on FreeBSD. The substitution requires an '/Ig' instead of '/ig' on FreeBSD to make it case insensitive as desired.

Make sure you have bash and expect installed on FreeBSD in order for this to work. (Not installed by default on a minimal build.)