TUT:mib2c config files

From Net-SNMP Wiki
Revision as of 16:42, 26 October 2009 by Mgibson (Talk | contribs) (Fixed a grammatical error that was annoying me to no end.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

mib2c is actually very poorly named. It was originally designed as a mechanism for producing C-code from a MIB file. However, it really is just a template system. You can produce just about anything from a MIB if you can write a template about how you want the output to be. For example:

 mib2c -c mib2c.genhtml.conf ifTable

The above command writes an html summary of the ifTable branch of the mib tree. It's probably much more readable than the average MIB file to many people.

Writing your own .conf file

The mib2c configuration file language is fairly easy to understand. See the mib2c configuration file manual page for details.

A quick preview: If you have a file that looks like this:

 @open -@
 @foreach $t table@
   In table $t we have the following indexes:
   @foreach $i index@
     $i
       (at $i.subid) which is of type $i.type
   @end@
   And the following columns:
   @foreach $i nonindex@
     $i
       (at $i.subid) which is of type $i.type
   @end@
 @end@

and we run mib2c pointing to that file we get:

 > mib2c -c MYFILE.conf ifTable
 writing to -
   In table ifTable we have the following indexes:
     ifIndex
       (at 1) which is of type ASN_INTEGER
   And the following columns:
     ifDescr
       (at 2) which is of type ASN_OCTET_STR
     ifType
       (at 3) which is of type ASN_INTEGER
     ifMtu
       (at 4) which is of type ASN_INTEGER
     ifSpeed
       (at 5) which is of type ASN_GAUGE
     ifPhysAddress
       (at 6) which is of type ASN_OCTET_STR
     ifAdminStatus
       (at 7) which is of type ASN_INTEGER
     ifOperStatus
       (at 8) which is of type ASN_INTEGER
     ifLastChange
       (at 9) which is of type ASN_TIMETICKS
     ifInOctets
       (at 10) which is of type ASN_COUNTER
     ifInUcastPkts
       (at 11) which is of type ASN_COUNTER
     ifInNUcastPkts
       (at 12) which is of type ASN_COUNTER
     ifInDiscards
       (at 13) which is of type ASN_COUNTER
     ifInErrors
       (at 14) which is of type ASN_COUNTER
     ifInUnknownProtos
       (at 15) which is of type ASN_COUNTER
     ifOutOctets
       (at 16) which is of type ASN_COUNTER
     ifOutUcastPkts
       (at 17) which is of type ASN_COUNTER
     ifOutNUcastPkts
       (at 18) which is of type ASN_COUNTER
     ifOutDiscards
       (at 19) which is of type ASN_COUNTER
     ifOutErrors
       (at 20) which is of type ASN_COUNTER
     ifOutQLen
       (at 21) which is of type ASN_GAUGE
     ifSpecific
       (at 22) which is of type ASN_OBJECT_ID

As you can see, we can change a MIB into just about anything.

Additional reading material

Tutorial Sections

About the SNMP Protocol

These tutorial links talk about SNMP generically and how the protocol itself works. They are good introductory reading material and the concepts are important to understand before diving into the later tutorials about Net-SNMP itself.

Net-SNMP Command Line Applications

These tutorial pages discuss the command line tools provided in the Net-SNMP suite of tools. Nearly all the example commands in these tutorials works if you try it yourself, as they're all examples that talk to our online Net-SNMP test agent. Given them a shot!

Application Configuration

All of our applications support configuration to allow you to customize how they behave.

Net-SNMP Daemons

Net-SNMP comes with two long-running daemons: a SNMP agent (snmpd) for responding to management requests and a notification receiver (snmptrapd) for receiving SNMP notifications.

Coding Tutorials

Net-SNMP comes with a highly flexible and extensible API. The API allows you to create your own commands, add extensions to the agent to support your own MIBs and perform specialized processing of notifications.

Debugging SNMP Applications and Agents

All our tools and applications have extensive debugging output. These tutorials talk about how the debugging system works and how you can add your own debugging statements to you code:

Operating System Specific Tutorials