From c0242386a13c0079dc8addceb410d56142b84773 Mon Sep 17 00:00:00 2001 From: Alban VIDAL Date: Sun, 29 Sep 2019 22:32:27 +0200 Subject: [PATCH] Add check: check_available_conntrack --- conf/usr/local/bin/check_available_conntrack | 59 ++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 conf/usr/local/bin/check_available_conntrack diff --git a/conf/usr/local/bin/check_available_conntrack b/conf/usr/local/bin/check_available_conntrack new file mode 100755 index 0000000..8b13f03 --- /dev/null +++ b/conf/usr/local/bin/check_available_conntrack @@ -0,0 +1,59 @@ +#!/bin/bash + +################################################################################ +# BSD 3-Clause License +# +# Copyright (c) 2019, Alban Vidal +# All rights reserved. +# +# Please see license file on root of this directory +################################################################################ + +# !! GIT FILE !! +# https://framagit.org/zorval/scripts/check-nrpe + +################################################################################ + +# ConnTrack files +FILE_CONNTRACK_MAX="/proc/sys/net/netfilter/nf_conntrack_max" +FILE_CONNTRACK_COUNT="/proc/sys/net/netfilter/nf_conntrack_count" + +if [[ ! -f "$FILE_CONNTRACK_MAX" || ! -f "$FILE_CONNTRACK_COUNT" ]] ; then + echo "Error, one of this files does not exists :" + echo " - $FILE_CONNTRACK_MAX" + echo " - $FILE_CONNTRACK_COUNT" + exit2 +fi + +################################################################################ + +# Initialize variables +RESULT="" +PERF_DATA="" +CONNTRACK_WARN=${CONNTRACK_WARN:=80} +CONNTRACK_CRIT=${CONNTRACK_CRIT:=90} +EXIT_CODE=0 + +################################################################################ + +# Get conntrack values +CONNTRACK_MAX=$(cat $FILE_CONNTRACK_MAX) +CONNTRACK_COUNT=$(cat $FILE_CONNTRACK_COUNT) + +WARN_COUNT=$(( CONNTRACK_MAX * CONNTRACK_WARN / 100 )) +CRIT_COUNT=$(( CONNTRACK_MAX * CONNTRACK_CRIT / 100 )) + +USAGE_PERCENT=$(( CONNTRACK_COUNT * 100 / CONNTRACK_MAX )) + +# Test percent for output +if [ $USAGE_PERCENT -ge $CONNTRACK_CRIT ] ; then + EXIT_CODE=2 +elif [ $USAGE_PERCENT -ge $CONNTRACK_WARN ] ; then + EXIT_CODE=1 +fi + +RESULT="Conntrack usage: ${USAGE_PERCENT}% (${CONNTRACK_COUNT}/${CONNTRACK_MAX})" +PERF_DATA="conntrack_table=$CONNTRACK_COUNT;$WARN_COUNT;$CRIT_COUNT;0;$CONNTRACK_MAX" + +echo "$RESULT | $PERF_DATA" +exit $EXIT_CODE