I  raised this issue on GitHub before I realised that this mailing list existed:
https://github.com/net-snmp/net-snmp/issues/47

I am using a traphandle directive to send the output of snmptrapd to an 
external Python program.
The Python script creates a JSON object and publishes on MQTT, and another 
microservice eventually writes this to InfluxDB.
It works well up to a point.

The Python script needs to know what datatype is used for each varbind value.
For example, in the trap data that my script reads from stdin, some strings are 
enclosed in quotes, but some are not. So it is impossible to know if a 
particular value is a string, an integer, or a counter.

What is really strange is that the snmptrapd output to stdout or stderr DOES 
include the datatype information. E.g. IF-MIB::ifPhysAddress.1 = STRING: 
0:a:14:0:0:0.
But this same varbind appears to the traphandler like this: 
IF-MIB::ifPhysAddress.1 0:a:14:0:0:0.

I have experimented with every possible combination of command-line arguments 
(-L, -O, -t), snmptrapd.conf file directives ([snmp] logOption, outputOption, 
doNotLogTraps), and snmp.conf file directives (oidOutputFormat).
The fundamental problem seems to be that the output to stdout/stderr and the 
output to a traphandlers seem to follow different rules.

Can anyone tell me how to get datatype information to a traphandler?

Regards,
Ben.


_______________________________________________
Net-snmp-users mailing list
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to