Bandwidth arguments

This support forum board is for support questions relating to Nagios XI, our flagship commercial network monitoring solution.
Locked
jjelinek
Posts: 1
Joined: Thu Feb 11, 2016 5:48 am

Bandwidth arguments

Post by jjelinek »

Hello
I didn't found same question here, but sorry if it is already here or if it is dumb question ;)

We have bandwidth checks with these arguments:
for warning 0.001:,0.001:
for critical 1.9,1.9
It's in Mbits. Idea is to have warning when bandwidth is below 1kbit and critical when it's over 1.9 Mbit.

But it looks like check_rrdtraf doesn't work correctly with that (especially with X: or :X arguments). Is it correct or is there any other way how to set it up?

Thanks in advance
Jakub
rkennedy
Posts: 6579
Joined: Mon Oct 05, 2015 11:45 am

Re: Bandwidth arguments

Post by rkennedy »

Looking at the check_rrdtraf plugin, you should be able to modify the section that deals with the warning / critical thresholds -

Code: Select all

    if [ $FILEAGE -gt $MAXAGE ]; then
        echo "WARNING - MRTG log file is older than maximum allowed threshold"
        exit $STATE_WARNING
    elif [ $(($DVALUEIN/${DIV:-1024})) -gt $INCRIT -o $(($DVALUEOUT/${DIV:-1024})) -gt $OUTCRIT ]; then
        echo -n "CRITICAL - Current BW in: $(echo "scale=$SCALE; ($VALUEIN/$SDIVIN)"| bc)"$SLABELIN"bps Out: $(echo "scale=$SCALE; ($VALUEOUT/$S$
        echo -n "|in=$(echo "scale=6; ($VALUEIN/$SDIVIN)"| bc)$SLABELIN""b/s;$INWARN;$INCRIT "
        echo "out=$(echo "scale=6; ($VALUEOUT/$SDIVOUT)"| bc)$SLABELOUT""b/s;$OUTWARN;$OUTCRIT"
        exit $STATE_CRITICAL
    elif [ $(($DVALUEIN/${DIV:-1024})) -gt $INWARN -o $(($DVALUEOUT/${DIV:-1024})) -gt $OUTWARN ]; then
        echo -n "WARNING - Current BW in: $(echo "scale=$SCALE; ($VALUEIN/$SDIVIN)"| bc)"$SLABELIN"bps Out: $(echo "scale=$SCALE; ($VALUEOUT/$SD$
        echo -n "|in=$(echo "scale=6; ($VALUEIN/$SDIVIN)"| bc)$SLABELIN""b/s;$INWARN;$INCRIT "
        echo "out=$(echo "scale=6; ($VALUEOUT/$SDIVOUT)"| bc)$SLABELOUT""b/s;$OUTWARN;$OUTCRIT"
        exit $STATE_WARNING
    else
        echo -n "OK - Current BW in: $(echo "scale=$SCALE; ($VALUEIN/$SDIVIN)"| bc)"$SLABELIN"bps Out: $(echo "scale=$SCALE; ($VALUEOUT/$SDIVOUT$
        echo -n "|in=$(echo "scale=6; ($VALUEIN/$SDIVIN)"| bc)$SLABELIN""b/s;$INWARN;$INCRIT "
        echo "out=$(echo "scale=6; ($VALUEOUT/$SDIVOUT)"| bc)$SLABELOUT""b/s;$OUTWARN;$OUTCRIT"
        exit $STATE_OK
    fi
Which would become something like this -

Code: Select all

    if [ $FILEAGE -gt $MAXAGE ]; then
        echo "WARNING - MRTG log file is older than maximum allowed threshold"
        exit $STATE_WARNING
    elif [ $(($DVALUEIN/${DIV:-1024})) -lt $INCRIT -o $(($DVALUEOUT/${DIV:-1024})) -lt $OUTCRIT ]; then
        echo -n "CRITICAL - Current BW in: $(echo "scale=$SCALE; ($VALUEIN/$SDIVIN)"| bc)"$SLABELIN"bps Out: $(echo "scale=$SCALE; ($VALUEOUT/$S$
        echo -n "|in=$(echo "scale=6; ($VALUEIN/$SDIVIN)"| bc)$SLABELIN""b/s;$INWARN;$INCRIT "
        echo "out=$(echo "scale=6; ($VALUEOUT/$SDIVOUT)"| bc)$SLABELOUT""b/s;$OUTWARN;$OUTCRIT"
        exit $STATE_CRITICAL
    elif [ $(($DVALUEIN/${DIV:-1024})) -lt $INWARN -o $(($DVALUEOUT/${DIV:-1024})) -lt $OUTWARN ]; then
        echo -n "WARNING - Current BW in: $(echo "scale=$SCALE; ($VALUEIN/$SDIVIN)"| bc)"$SLABELIN"bps Out: $(echo "scale=$SCALE; ($VALUEOUT/$SD$
        echo -n "|in=$(echo "scale=6; ($VALUEIN/$SDIVIN)"| bc)$SLABELIN""b/s;$INWARN;$INCRIT "
        echo "out=$(echo "scale=6; ($VALUEOUT/$SDIVOUT)"| bc)$SLABELOUT""b/s;$OUTWARN;$OUTCRIT"
        exit $STATE_WARNING
    else
        echo -n "OK - Current BW in: $(echo "scale=$SCALE; ($VALUEIN/$SDIVIN)"| bc)"$SLABELIN"bps Out: $(echo "scale=$SCALE; ($VALUEOUT/$SDIVOUT$
        echo -n "|in=$(echo "scale=6; ($VALUEIN/$SDIVIN)"| bc)$SLABELIN""b/s;$INWARN;$INCRIT "
        echo "out=$(echo "scale=6; ($VALUEOUT/$SDIVOUT)"| bc)$SLABELOUT""b/s;$OUTWARN;$OUTCRIT"
        exit $STATE_OK
    fi
I just flipped the 'gt' to 'lt' (greater than -> less than). It will probably take some testing in your environment, but should work. Hopefully this is a start! Let us know if you run into any issues.
Former Nagios Employee
Locked