We use a Gateway Agent to poll data from assets that run an snmp agent (using the snmp driver of the Gateway). Sometimes the snmp agant on the asset crashes. We would like to be able to detect this.
The assets have the ability to respond to icmp ping's.
Using only the snmp driver, it is (as far as I know) not possible to dintinguish between a asset that has been powered off and an asset that has a crashed snmp agent (these are both considered as being offline.
Can the Gateway Agent be configured to detect the difference?
The Gateway Agent also has a ping-based EDD driver - this could be one way for you to independently validate the device(asset) is still online.
What exactly is detection? Offline equals no snmp and no ping? Or are there other considerations? You could use a tool like netcat or nmap to probe the SNMP port.
ping | snmp | status
ok | ok | online
not ok | not ok | offline
ok | not ok | snmp crash
I think it would be enough to keep the online/offline logic as it is (snmp based) and to have a digital data item that gets set to 1 or 0 (e.g. refreshed each minute) based on icmp ping success of failure.
If there was an SNMP value that you knew was changing all the time, you could read it and then use an expression + timer to confirm it was still changing. If ping true, but timer had timed out, then SNMP agent failed.