logstash-plugins / logstash-integration-snmp

Logstash Integration Plugin for SNMP, including SNMP input and SNMP Trap Plugins
Apache License 2.0
0 stars 3 forks source link

[discuss] Adding a vendor specific MIB folders for pre-compiled dic files #40

Open axrayn opened 5 years ago

axrayn commented 5 years ago

What are your thoughts on including a vendor folder under lib/mibs that would contain subfolders for each specific vendor and these subfolders would include pre-converted MIBS. e.g. lib/mibs/vendor/f5/F5-BIGIP-LOCAL-MIB.dic

We could then include a config option, say 'include_vendor_mibs' that would be an array of vendor names (that match the folder names), so that users would have the option to only load up the specified mib folders. This would of course be cumulative with the existing MIB options.

I don't believe we'd need to include every single MIB proverbially under the sun (and thereby reduce the plugin footprint), but I thtink would certainly reduce some of the workload for the end-user to provide some of the more common vendoers - Cisco/F5/Checkpoint/IBM/NetSNMP/Juniper/Nortel/etc. This would possibly also reduce some of the instances of issues relating to not being able to compile MIB files.

In the longer run, it would also be useful to have the MIBs available when we get the snmp trap support working so that we can natively translate traps with, again, less work for the end user.

colinsurprenant commented 5 years ago

That sounds like a good idea. How do you suggest we harvest all these vendor mibs?

axrayn commented 5 years ago

I've been collecting mibs for a few years now. :)

How would we draw the line between commonly used vendor mibs and the uncommon vendor mibs to keep the plugin size down?

colinsurprenant commented 5 years ago

Good question. Currently the provided MIBs (converted to .dic files) account for 24MB in the source tree but the resulting gem size is about 2.4MB which means that these MIBs text files compresses very well so I wouldn't worry too much about the plugin size. Another option could be to host all the MIBS in another repo and somehow give the user the option to import all the MIBs or not in which case the user would have to provide their own.