I was curious what SNMP was up to so I busted out wireshark and setup a device with a single service on it.
When I watch a single probe the value is looked up twice, once for the “available” line and once for the “error” line.
Shouldn’t available only be tested when you click on Discover in the services tab of a device?
I have also discovered that the number “ZERO” is handled incorrectly as an SNMP result. Zero should be a valid result. NULL and “” should generate an actual FALSE. Where Zero should be considered TRUE. For example the following line causes every device to graph a Cisco cpu of 0 even though the returned value was NULL from a windows server and “” from a device that doesn’t exist. Therefore I never see CiscoCPU down on a device that is down…
if(oid(“1.3.6.1.4.1.9.2.1.57.0”)>=0, “”, “CPU down”)
While you are in there please continue to graph the result from SNMP reads while error is true!
If you have a temperature alarm error the SNMP value returned is not graphed when error is true and you can’t tell how hot things got…
if(oid(“1.3.6.1.4.1.318.1.1.10.3.13.1.1.3.1”)<87, “”, “Computer Room HOT”) above 87 no graphing is done.
Thanks MikroTik, Keep up the good work!
