#!/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" exit 2 fi ################################################################################ # If environnement file exist, we load it if [ -f /etc/zorval/env_check_available_conntrack ] ; then source /etc/zorval/env_check_available_conntrack 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