Git Product home page Git Product logo

zabbix-template-converter's Introduction

zabbix-template-converter

This Python script aims to resolve compatability issues when migrating Zabbix template XML files between versions of Zabbix. For example, you may wish to import a Zabbix v3.2 template into Zabbix v2.0.

The script works by applying conversion rules to a template, which manipulate the template XML to match the desired Zabbix version template format.

Installation

Install the Python script to /usr/local/bin with pip:

$ pip install zabbix-template-converter

Usage

$ zabbix-template-converter -h
usage: zabbix-template-converter [-h] [-v] -o X.Y.Z [-s] file

Migrate Zabbix templates between versions

positional arguments:
file                  Zabbix template XML file

optional arguments:
-h, --help            show this help message and exit
-v, --version         show program's version number and exit
-o X.Y.Z, --output-version X.Y.Z
                        target Zabbix version
-s, --squash-value-maps
                        remove references to value maps for versions older
                        than 3.0.0

Examples

To convert a Zabbix 3.2 template for import into v2.0:

$ zabbix-template-converter -o 2.0 my_template.xml > my_template-2.0.xml

A number of transformations will take place. For example, Discovery Rule filters will be downgraded from the multiple-filter format introduced in Zabbix 2.4, to a single filter expression as follows:

<filter>
    <evaltype>0</evaltype>
    <formula/>
    <conditions>
        <condition>
            <macro>{#IFNAME}</macro>
            <value>@Network interfaces for discovery</value>
            <operator>8</operator>
            <formulaid>A</formulaid>
        </condition>
    </conditions>
</filter>

Becomes:

<filter>{#IFNAME}:@Network interfaces for discovery</filter>

Coverage

This project relies heavily on the community to report incompatibility problems when importing templates.

Please raise an issue if you find a template that won't import after being converted. Be sure to include the error messages and template file.

Over time, as conversion rules are added, the script should become more comprehensive, and more reliable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.