Skip to content
SleekPrompt
MIB Converter

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.

Output

MIB file

empty

JSON

Ready

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.0 is 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 poll oid.<index>. Objects with MAX-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. Counter32 and Counter64 only 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 (ifHCInOctets over ifInOctets) 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; use 5m for 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. 1. Download the YAML, then in Zabbix go to Data collection → Templates → Import. Tick Create new and Update existing.
  2. 2. Link the template to a host that has an SNMP agent interface configured.
  3. 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. 4. Check Latest data. An item stuck at "Not supported" shows the exact SNMP error; most often it is a missing .0 on a scalar, or an OID the device genuinely does not implement — vendors ship MIBs describing objects a given model does not have.
  5. 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. 1

    Paste your .mib file, or drop it onto the input panel.

  2. 2

    Every OBJECT-TYPE is parsed and its numeric OID resolved through the standard SNMP tree.

  3. 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.