SNMP Template generator for Zabbix
Find a file
Sven Putteneers 581a205121 Make ordering of mappings and application stable
Perl 5.8.1 added hash randomisation (see
https://metacpan.org/release/JHI/perl-5.8.1/view/pod/perldelta.pod#Hash-Randomisation).

The effect is that multiple invocations of `keys %hash` return the hash keys in
different ordering, even between separate runs of the script with the same
inputs.

As a result, running the script multiple times, yielded non-identical XML
output, since the order of the mappings and application lists is different
every time.

By first sorting the hash keys for the mapping and application hashes before
iterating over them, multiple runs of the script with the same inputs result in
identical output.
2022-07-15 11:51:34 +02:00
mib2zabbix.pl Make ordering of mappings and application stable 2022-07-15 11:51:34 +02:00
README.md Added prereqs for RHEL family servers - Thanks Volker 2016-10-30 20:43:50 +08:00

mib2zabbix

This Perl script will generate a Zabbix v3 Template in XML format from an OID tree in a SNMP MIB file.

Usage

mib2zabbix.pl -o <OID> [OPTIONS]...
    
Export loaded SNMP MIB OIDs to Zabbix Template XML

    -f, --filename=PATH         output filename (default: stdout)
   
    -N, --name=STRING           template name (default: OID label)
    -G, --group=STRING          template group (default: 'Templates')
    -e, --enable-items          enable all template items (default: disabled)
    
    -o, --oid=STRING            OID tree root to export (must start with '.')
    
    -v, --snmpver=1|2|3         SNMP version (default: 2)
    -p, --port=PORT             SNMP UDP port number (default: 161)
    
SNMP Version 1 or 2c specific

    -c, --community=STRING      SNMP community string (default: 'public')
    
SNMP Version 3 specific

    -L, --level=LEVEL           security level (noAuthNoPriv|authNoPriv|authPriv)
    -n, --context=CONTEXT       context name
    -u, --username=USERNAME     security name
    -a, --auth=PROTOCOL         authentication protocol (MD5|SHA)
    -A, --authpass=PASSPHRASE   authentication protocol passphrase
    -x, --privacy=PROTOCOL      privacy protocol (DES|AES)
    -X, --privpass=PASSPHRASE   privacy passphrase

Zabbix item configuration

    --check-delay=SECONDS       check interval in seconds (default: 60)
    --disc-delay=SECONDS        discovery interval in seconds (default: 3600)
    --history=DAYS              history retention in days (default: 7)
    --trends=DAYS               trends retention in days (default: 365)
    
    -h, --help                  print this message

Requirements

  • Zabbix v3+
  • Perl v5
  • Pod::Usage
  • XML::Simple
  • Net-SNMP
  • Correctly configured MIB files

Installation

Install from GitHub:

# install prerequisites on Ubuntu: 
apt-get install perl libxml-simple-perl libsnmp-perl

# install prerequisites on RHEL family:
yum install "perl(SNMP)" "perl(XML::Simple)"

# assumes ~/bin exists and is in $PATH, so adjust accordingly!
curl -sL -o ~/bin/mib2zabbix https://raw.githubusercontent.com/cavaliercoder/mib2zabbix/master/mib2zabbix.pl
chmod +x ~/bin/mib2zabbix

Translations

This table describes how MIB elements are translated into Zabbix template elements:

  • Scalar OID -> Zabbix SNMP Item
  • Table OID -> Zabbix SNMP Discovery Rule
  • Table Column OID -> Zabbix Discovery Prototype
  • Trap/Notification OID -> Zabbix SNMP Trap Item
  • OID Enums -> Zabbix Value Maps

License

mib2zabbix - SNMP Template Generator for Zabbix Copyright (C) 2016 - Ryan Armstrong ryan@cavaliercoder.com

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.