第二十章 配置的导出与导入

Zabbix系统管理员有一个很重要的任务就是根据需求创建各种各样的模板,创建和管理监控主机、主机组等。Zabbix为我们提供了导出/导入功能,可以对模板、主机等配置进行备份、恢复和迁移。

Zabbix中可以使用前端页面或者API导出/导入配置数据,前端页面导出/导入时只支持XML格式,使用API时支持XMLJSON格式。

 

近日完成《深入浅出 zabbix 4.0》视频教程的录制并正式发布,该教程基于 zabbix 4.2 ,对Zabbix进行全面讲解。欢迎大家围观。课程链接:https://edu.51cto.com/sd/ce000 

20.1 导出

Zabbix中支持以下项目的导出:

  • Host groups(只能通过API导出)

  • Templates,包括所有在该模板中创建的itemstriggersgraphsscreensdiscovery rule和模板的链接。

  • Host,包括所有在该主机中创建的itemstriggersgraphsscreensdiscovery rule和模板的链接。

  • Network maps,包括所有和该拓扑图相关的p_w_picpaths

  • Images

  • Screens

  • Value maps

Zabbix中导出配置时,所有支持的元素都将导出到一个文件中,包括主机和模板中的itemstriggersgraphsscreensdiscovery rule。导出模板时在该模板中嵌套链接的模板中定义的配置不会被导出,将导出的模板重新导入时嵌套链接的模板中定义的配置会利用链接的原始模板重新创建。如果模板中定义的配置参数在主机上经过修改,例如item intervalregularexpression等,这些修改在导出模板时都会丢失。

通过low-level discovery创建的实体不会被导出,例如通过low-leveldiscovery rule生成的监控项创建的触发器是不会导出的。

另外,web item相关的触发器和图形是不会导出的。

当导出主机时,会将主机中很多相关的对象及对象之间的关系一同导出,包括:

  • Host data(主机数据)

  • Host inventory data(主机资产记录数据)

  • Group relations(组关系)

  • Template relations(模板关系)

  • Interfaces(接口)

  • Macros(宏变量)

  • Application(监控项组)

  • Items(监控项)

  • Discovery rules with allprototypes(发现规则及所有原型)

  • Value maps(值映射)

 

20.2 导入

Zabbix中支持导入XMLJSON格式的文件,并且文件名称的后缀必须是.xml或者是.json。当导入过程中遇到错误时,会停止导入,以便保证导入成功的数据是完整可靠的。当导入p_w_picpaths时,p_w_picpathtype的字段是忽略的,不能通过导入的方法改变p_w_picpath的类型。

在导入主机或模板时,如果选择了Delete missing选项,那么在导入文件中不存在的宏变量将被删除。

导入文件中空的标签(tags)如 itemstriggersgraphshost/template applicationsdiscoveryRulesitemPrototypestriggerPrototypesgraphPrototypes等,是没有任何意义的,意味着没有实际应用。但是如果缺少标签(tags)是不能完成更新的。

 

20.2 XML文件格式

Zabbix中导出的XML文件格式中,默认使用的XML文档的header是:

<?xmlversion="1.0" encoding="UTF-8"?>

Zabbix XML root 元素为:

         <zabbix_export>

导出的版本为:

<version>3.0</version>

导出的日期使用ISO 8601长格式:

<date>2012-04-18T14:07:36Z</date>

下面来看看导出XML文件的完整版:

<?xml version="1.0" encoding="UTF-8"?>

<zabbix_export>

   <version>3.0</version>

    <date>2016-09-02T07:28:16Z</date>

    <groups>

        <group>

           <name>Templates</name>

        </group>

    </groups>

    <templates>

        <template>

           <template>Template SNMP Generic</template>

           <name>Template SNMP Generic</name>

            <description/>

            <groups>

                <group>

                   <name>Templates</name>

                </group>

            </groups>

           <applications>

               <application>

                   <name>General</name>

                </application>

           </applications>

            <items>

                <item>

                   <name>Device contact details</name>

                   <type>4</type>

                   <snmp_community>{$SNMP_COMMUNITY}</snmp_community>

                   <multiplier>0</multiplier>

                   <snmp_oid>SNMPv2-MIB::sysContact.0</snmp_oid>

                   <key>sysContact</key>

                   <delay>3600</delay>

                   <history>7</history>

                    <trends>0</trends>

                   <status>0</status>

                   <value_type>1</value_type>

                   <allowed_hosts/>

                   <units/>

                   <delta>0</delta>

                   <snmpv3_contextname/>

                    <snmpv3_securityname/>

                   <snmpv3_securitylevel>0</snmpv3_securitylevel>

                   <snmpv3_authprotocol>0</snmpv3_authprotocol>

                   <snmpv3_authpassphrase/>

                   <snmpv3_privprotocol>0</snmpv3_privprotocol>

                   <snmpv3_privpassphrase/>

                   <formula>1</formula>

                   <delay_flex/>

                   <params/>

                   <ipmi_sensor/>

                   <data_type>0</data_type>

                   <authtype>0</authtype>

                   <username/>

                   <password/>

                   <publickey/>

                   <privatekey/>

                   <port/>

                   <description>Device contact details</description>

                   <inventory_link>23</inventory_link>

                   <applications>

                       <application>

                           <name>General</name>

                       </application>

                    </applications>

                   <valuemap/>

                   <logtimefmt/>

                </item>

            </items>

           <discovery_rules/>

            <macros/>

            <templates>

               <template>

                   <name>Template SNMP Interfaces</name>

               </template>

            </templates>

            <screens/>

        </template>

    </templates>

</zabbix_export>

你会注意到导出的XML文件中只有模板的链接,而链接的模板中定义的配置并不包含在文件中。

 

深入浅出Zabbix 3.0 -- 第二十章 配置的导出与导入_zabbix

出自http://ustogether.blog.51cto.com/8236854/1931620,如需转载请与作者联系。