Writing my own MIB - any references of how to do so? - snmp

Mapping some OIDs to system commands is actually all I need
However, I could not find yet a resource which explain how to compose such thing.
Any idea?

There are books about SNMP and MIBs, such as the SNMP MIB Handbook. If you want to learn by example, read some RFCs that define MIBs, such as the Printer MIB.

I read SNMP MIB Handbook. I was a novice of the matter and it lead me inside MIBs very easly. VERY WELL ORGANIZED. Suggested!
I also bought Unserstanding SNMP MIBs, but I didn't read it. After a brief look seems to be very complete.
Good luck!

The Bible of MIBs is considered to be Understanding SNMP MIBs. If you're a book sort of person, that's the recommended reading. The RFCs for MIBS are well worth reading too (RFC2578 through 79) but don't give you a great feel for the corner and "how to" cases.

Related

defining private MIB under experimental node

Any samples on how to define a private MIB containing some x objects? how do I register these MIBs and handle get requests to it?
You could start by reading something like Net-SNMP's tutorial about agent coding tutorials. But in the long run, if you need to write about MIBs you should probably also read either the SMIv2 RFCs (RFC2578 to get started) or a good book on SNMP and MIBs ("Understanding SNMP MIBs" is the classically referred to book).

SNMP MIB Structure Conventions for nodes below the Enterprise Identifier

I have developed a Linux/Umbutu program running on what will be an imbedded P-based device. I wish for that piece of code to be able to send and receive the SNMP data for the entire product. So, I know the OID down to the company level, 1.3.6.1.4.1.34843, and I further know that the two SNMP enabled products we sell are 1.3.6.1.4.1.34843.1 and 1.3.6.1.4.1.34843.2. Pretty sure mine will be .3.
The question is, is there a known structure/convention for the nodes below this point? What I read seems to imply that I can use whatever structure I want. Would ...34843.1.0 exist? Is it a node to fetch (get) the list or max-count of same-level nodes? Would ...34843.1.0.0 exist? Would it make any sense? The guy who developed the first two MIBs is out of town for a while and I can't really ask him, and I'd like to make sure I understand his answer when he gives it to me.
Is there a document that describes the required/suggested organization? Probably some RFC, right. So, is there a document in a language spoken by humans?
Thanks in advance.
The most popular resource is the understanding SNMP MIBs book by Perkins and McGinnis. It describes MIBs in a more readable format. The Net-SNMP tutorials online might be helpful too, as they discuss a lot about MIBs. If you want the RFC, then RFC2578 is the right thing to read.
The quick hierarchy guidance would be something along the lines of:
Use 3 sections: one for objects, one for notifications, and one for conformance information
For notifications, root them at the .0 (see RFC3584 for details on why)
For each table, you might want a scalar showing the number of objects in a table and potentially a LastChanged object for showing how frequently configuration within the table might have changed).
There is a lot more guidance that can be found in the books and other sources listed above than can be repeated here, of course. RFCs 4181, and 5249 may be helpful as well.

help needed for SNMP protocol

I need some information and guidance about SNMP, I am new in development so I need help.
I studied SNMP protocol in detail(MIB,OID, and how it works),
I have some questions
can we change read-only Access of MIB objects to read-write Access?
Can we change Standard MIB to our own requirements?
Thanks and Regards
In a few scenarios, you may change a read-write object to read-only object. But I don't think you can do the opposite.
If you need to meet your own requirements, you may write your own MIB documents and add custom objects. Don't change standard objects, as that breaks the standard.

SNMP OIDs Documentation

I am looking for documentation on SNMP IODs return values. For example, the MIB IBM-SYSTEM-HEALTH-MIB 1.3.6.1.4.1.2.6.159.1.1.30 , it provides information on temperature, voltage, and fan status.
1.3.6.1.4.1.2.6.159.1.1.30.3.1.2 provides information on Current State. However, I am not sure what the return values 0 and 3 mean.
Does anyone know where I can find any documentation on these return values for OIDs?
Thanks in advance.
Like lextm-MSFT said, you can find the answer in your vendor's MIB file. If you can't find them on your vendor's support website, Bytesphere (http://www.oidview.com/mibs/vendors.html) is an excellent resource for enterprise MIBs.
You must have the MIB document at hand and check out description section for each objects. Besides, consult IBM support team to see if they have other official documents on that.

What are some good resources for understanding SNMP MIBs?

I know a little about SNMP, but not enough. I need to develop an application that can read standard SNMP MIBs and read/write the various properties. The network end is no problem, but the actual MIBs and exactly what they may contain is something of a black art to me.
I believe I should be able to use LIBSMI to 'parse' the MIBs, but I don't really understand what the output of the 'parser' is going to be, and how best to use it.
All suggestions welcome...
At the risk of throwing you in the deep end, you might want to take a look at net-snmp. The default installation contains a number of standard mibs with their associated implementation. It also contains a utility (mib2c) that will generate boilerplate code from your mib files.
Once you've read your way through a couple of mibs you should have no trouble familiarising yourself with the way that snmp does things.
Most standard MIB documents were defined in corresponding RFCs published at IETF.
http://www.ietf.org/
Please go to this site to find more details.
Muonics Mib Smithy User Guide provides a good overview of how to build a MIB, which can help you understand the necessary elements for parsing.
You should also look at the ASN.1 ITU specification X.690, because that is the language SNMP is defined in. It also helps if you scour the SNMP RFCs for any Bachus-Naur formatting in the SNMP RFCs. I'm going to suggest you start with RFC3642 and RFC2252.

Resources