Just a quick note that this tool [1] should be able to dump MIBs into 
individual [2] JSON files and maps of MIB objects [3].

May be you could then load such JSONs into a DB and make your service talking 
to that DB to perform the translation you need?

Not sure how relevant my suggestion would be to your situation. Noting this 
just in case. ;-)

1. https://github.com/etingof/pysmi
2. http://mibs.snmplabs.com/json/fulltexts/A3COM-HUAWEI-3GMODEM-MIB.json
3. http://mibs.snmplabs.com/json/index.json

> On 25 Jan 2017, at 22:25, Chris Fowler <linx...@gmail.com> wrote:
> 
> I'm tying to do something that works on a smaller scale, but on a
> larger scale keeping up with MIB syntax errors and such is a problem.
> 
> I have a device that has 25M of MIB files.  snmptranslate takes too
> long to process through '+ALL'. I've used the SNMP Perl module so I
> wrote a translation service using SOAP for my applications.
> I like it.  It uses SNMP::initMib() to go after the 25 and I use
> smidump, etc to get extra data for the API.  Things like
> 'LAST-UPDATED'.  It also parses traps out and stores that data for
> callers.
> 
> As I receive zip files with vendor MIBs I add this to the repository,
> but I want to cache 200M worth of data on another system.  I'll modify
> my service on the device to cache when OIDs are seen from traps, but
> it can not translate.  I've ported the service over to the server.
> 
> Here is where I've ran into problems:
> 
> I've downloaded a few repositories of MIBS off github.  LibreNMS is
> one such repository.
> 
> Net-SNMP MIBs and the RFC oness generated in Net-SNMP build are stored
> in /usr/share/snmp/mibs.
> 
> The ones I've added to the device are in
> /usr/share/snmp/private
> 
> The large group is in
> /usr/share/snmp/extra
> 
> MIBDIRS on those and MIBS=+ALL will be successful for the first 2, but
> the last one has many errors.   My line of thinking is that if
> LibreNMS uses those are they running into the same thing?  If not,
> maybe I'm doing something wrong.
> 
> Management is an issue that I also need to tackle. "Techs" that "want
> to monitor" will provide zips of files they do not know.  "These are
> the MIBs".  I may have those already.  I used smidump to get the last
> revision date so I could maintain the newest versions of these files.
> I use a script to rename the files to the name of the MIB MODULE
> contained within.  To copy a MIB to one of those directories it must
> be pre-processed.
> 
> The service works.  I like it and it seems to work well.  I know that
> creating a translation service is not impossible.   I don't understand
> MIBs within this system enough to know if using a service for
> translation is really possible.  Perl's SNMP with +ALL does not
> provide a way to sort some of this out so I'm doing it as prep work.
> 
> I've tried a few tricks to stop using snmptranslate when parsing
> traps.  I want the labels in log files for the techs (not OIDs).  The
> device that has 25M will consume 7-9s of sys time before even
> receiving a response from snmptranslate. If I'm getting traps every 5s
> I'll never catch up.  Using the service it is < 1s to get an answer.
> Only one &SNMP::initMib() has to be executed at boot vs one for each
> trap!
> 
> I've tried a walk through $SNMP::MIB and storing the values in a db
> file.  The result is 19M, large, and the reality is the the MIBs are
> the database.  I've tried caching the results of a translate in a DB
> file.  This works great until you run into .N where N may be an
> interface, etc and can be 1-1000.  The DB file and the caching of past
> translations in a db file did not scale well.  I always came back to
> $SNMP::MIB.  I thought maybe I could Storable::n_freeze(SNMP::MIB) to
> disk and use that instead.  The only time the MIB files change is when
> I regenerate a new image on the device.  I'm sure that hash is a tied
> hash to the Net-SNMP C API and can't be stored.
> 
> I'd love to drop my devices down to just the Net-SNMP MIBs plus RFC,
> program their service to send OIDs upstream for translation and cache
> those locally till next boot.  I can write that.  I'm not sure if it
> is really possible with all these MIBs I collect from all over.
> 
> Ideas and suggestions on this issue would be greatly appreciated,
> 
> Chris
> 
> -----------------

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
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