Convert a MIB File to JSON, YAML, XML or a Zabbix Template
Parse an SNMP MIB and get every object with its numeric OID, syntax and access — as JSON, YAML, XML, CSV, or a ready-to-import Zabbix template. Free, nothing uploaded.
MIB file
JSON
Zabbix essentials for SNMP
A generated template gets you the items. These are the things that decide whether the data is actually correct once it starts arriving.
The concepts, in order
- OID
- A dotted number identifying one value on the device, e.g.
1.3.6.1.2.1.1.3.0is uptime. The MIB is just the dictionary that maps readable names to these numbers — the device only ever speaks numbers. - Scalar vs table
- A scalar has one value and you poll it with a trailing
.0. A table has one value per row and you polloid.<index>. Objects withMAX-ACCESS not-accessible— the table and entry nodes — cannot be polled at all; they exist to give the columns somewhere to hang. - SNMP interface
- Set on the host, not the item: address, port 161, version, and the community string (v2c) or credentials (v3). An item with no SNMP interface on its host will never collect, whatever the OID says.
- Item key
- Must be unique per template. The generated keys use
name[oid], which stays unique even when two MIBs define the same short name. - Value type
- Numeric (unsigned) for counters and gauges, Character or Text for strings. Pick text for a numeric value and you lose graphs and triggers; pick numeric for a string and the item goes unsupported.
Mistakes that produce wrong graphs
- Counters
- The big one.
Counter32andCounter64only ever increase — the raw value is a running total since boot, so graphing it unprocessed gives a straight rising line, not traffic. Apply Change per second preprocessing. The Zabbix export here does that for you. - Counter32 wrap
- A 32-bit counter holds about 4.3 billion octets and wraps in roughly 34 seconds on a 1 Gbps link. Prefer the 64-bit equivalent (
ifHCInOctetsoverifInOctets) wherever the device offers one. - Polling interval
- Faster is not better. SNMP agents on embedded hardware are slow, and a 10-second interval across hundreds of OIDs will time out or load the CPU. Start at
1m; use5mfor anything that changes slowly. - Discovery over static items
- For anything per-interface, use a discovery rule with
{#SNMPINDEX}rather than hard-coding row indexes. Interface indexes are not stable across reboots on many devices, so a static item can silently start measuring a different port. - Value maps
- An enumeration like
INTEGER { up(1), down(2) }arrives as a bare number. Without a value map every dashboard reads "1" instead of "up". Enumerations found in your MIB become value maps in the export.
Importing and checking the template
- 1. Download the YAML, then in Zabbix go to Data collection → Templates → Import. Tick Create new and Update existing.
- 2. Link the template to a host that has an SNMP agent interface configured.
- 3. Verify from the Zabbix server before trusting the UI:
snmpwalk -v2c -c public <host> 1.3.6.1.2.1.1— if snmpwalk returns nothing, the problem is credentials, firewall or the agent, not the template. - 4. Check Latest data. An item stuck at "Not supported" shows the exact SNMP error; most often it is a missing
.0on a scalar, or an OID the device genuinely does not implement — vendors ship MIBs describing objects a given model does not have. - 5. Trim before you deploy widely. A generated template polls everything readable in the MIB; on a large file that is hundreds of items per host. Delete what you will not look at — every item costs poll time and database space.
How to use the MIB Converter
- 1
Paste your .mib file, or drop it onto the input panel.
- 2
Every OBJECT-TYPE is parsed and its numeric OID resolved through the standard SNMP tree.
- 3
Choose JSON, YAML, XML, CSV — or generate a Zabbix template you can import directly.
Frequently asked questions
Why do some objects show as “unresolved”?
A MIB usually hangs off symbols defined in another file — most often SNMPv2-SMI or a vendor's top-level MIB. Anything rooted in the standard tree (mib-2, enterprises, interfaces and so on) resolves here without imports. Anything whose parent lives in a file you have not pasted cannot have a numeric OID worked out, so it is listed by name and reported plainly rather than being guessed at or silently dropped.
Does this replace a full MIB compiler?
No, and it does not claim to. It parses the object macros — OBJECT-TYPE, OBJECT-IDENTITY, MODULE-IDENTITY, NOTIFICATION-TYPE and OBJECT IDENTIFIER nodes — which is what you need to build an OID list or a monitoring template. It does not evaluate TEXTUAL-CONVENTIONs, macro definitions or complex IMPORTS resolution the way smilint or libsmi does.
What does the Zabbix export contain?
A Zabbix 6.0 template with one SNMP agent item per readable scalar object. Tables and rows (MAX-ACCESS not-accessible) are excluded because they cannot be polled directly. Counter32 and Counter64 items get a Change per second preprocessing step, and INTEGER enumerations become value maps so the UI shows “up” rather than “1”.
Is my MIB uploaded anywhere?
No. Parsing happens in your browser. Vendor MIBs are often under NDA or describe internal infrastructure, which is exactly the sort of file you should not be pasting into a server you do not control.