Hi,
i configured three services per monitored port for my switches:
check_up - simply check the availability of a port
check_snmp_int --hostname $HOSTADDRESS$ --community $USER5$ --noregexp --name "GigabitEthernet1/1"
check_traffic - check the bandwith usage of a port
check_snmp_int --hostname $HOSTADDRESS$ --community $USER5$ --noregexp --name "GigabitEthernet1/1" --perfcheck --perfparse --perfprct --prct --64bits -2 --intspeed --warning 70,70 --critical 90,90
check_errors - check errors and discards on a port
check_snmp_int --hostname $HOSTADDRESS$ --community $USER5$ --noregexp --name "GigabitEthernet1/1" --perfcheck --perfparse --perfprct --prct --64bits -2 --intspeed --extperfcheck --warning 100,100,10,10,5,5 --critical 100,100,100,100,50,50
Where the latter two have a child dependency with the first one. (traffic thresholds for check_errors are 100% so that the bandwith part of the check will always be OK)
Now i found that check_snmp_int writes a status file for each port /tmp/tmp_Nagios_int.<ip>.<portname>.
In my case chack_traffic and check_errors use the same file, so that collisions and invalid check results occur.
I patched check_snmp_int so that with --extperfcheck a different file /tmp/tmp_Nagios_int.<ip>.<portname>.ext is created and the two services can coexist.
Maybe this is useful for you, so i attached the patch file.
Greetings from Munich,
Gerhard