conf-10-check-nrpe/conf/usr/local/bin/check_available_conntrack
2019-09-30 07:26:41 +02:00

65 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
################################################################################
# BSD 3-Clause License
#
# Copyright (c) 2019, Alban Vidal <alban.vidal@zordhak.fr>
# 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"
exit 2
fi
################################################################################
# If environnement file exist, we load it
if [ -f /etc/env_check_nrpe ] ; then
source /etc/env_check_nrpe
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