From f2599e49f8dd2e2ff49848a0f2973f4111527e8d Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Fri, 18 Mar 2016 16:27:58 +0000 Subject: [PATCH] Rewrite check_rabbitmq_size to use python to evade permission issues (rabbitmqctl can only run as root or rabbitmq) Signed-off-by: Patrick Uiterwijk --- .../client/files/scripts/check_rabbitmq_size | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/roles/nagios/client/files/scripts/check_rabbitmq_size b/roles/nagios/client/files/scripts/check_rabbitmq_size index 6527b72b65..727b6c34b9 100644 --- a/roles/nagios/client/files/scripts/check_rabbitmq_size +++ b/roles/nagios/client/files/scripts/check_rabbitmq_size @@ -1,22 +1,26 @@ -#!/bin/bash +#!/bin/python +import sys +import requests -QUEUE=$1 +url = 'http://localhost:15672/api/queues/%%2f/%s' % (sys.argv[1]) -QUEUESIZE=`rabbitmqctl list_queues | grep $QUEUE | awk '{print $2}'` +r = requests.get(url, auth=('guest', 'guest')).json() +consumers = r['consumers'] +messages = r['messages'] -CRITICAL=20 -WARNING=15 +msg = 'Messages in queue: %i (%i consumers)' % (messages, consumers) +if consumers < 1: + print 'CRITICAL: %s' % msg + sys.exit(2) -if [ $QUEUESIZE -gt $CRITICAL ] -then - echo "queuesize: CRITICAL Queue size: $QUEUESIZE" - exit 2 -elif [ $QUEUESIZE -gt $WARNING ] -then - echo "queuesize: WARNING Queue size: $QUEUESIZE" - exit 1 -else - echo "queuesize: OK Queue size: $QUEUESIZE" - exit 0 -fi +if messages > 20: + print 'CRITICAL: %s' % msg + sys.exit(2) + +if messages > 10: + print 'WARNING: %s' % msg + sys.exit(1) + +print 'OK: %s' % msg +sys.exit(0)