2022 Zabbix中国峰会
2022 Zabbix中国峰会

configuration.import

说明

boolean configuration.import(object parameters)

此方法允许使用序列化字符串导入配置数据。

参数

(object) 参数包含导入的数据以及如何处理数据的规则。

参数 类 说明
format
(required)
string 关于如何导入应用集的规则。

可能的值:
json - JSON;
xml - XML.
source
(required)
string 包含配置数据的序列化字符串。
rules
(required)
object 如何导入新的和现有的对象的规则。

rules 参数在下表详细描述。

如果没有规则,配置将不被更新。

rules 对象提供以下参数。

参数 类 说明
applications object 如何导入应用程序的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true,新的应用集将会被创建;默认:false
deleteMissing - (boolean) 如果设置为 true,不在导入数据中的应用集将会从数据库中被删除;默认:false
discoveryRules object 关于如何导入底层自动发现规则(LLD)的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true,新的底层自动发现规则(LLD)将会被创建;默认:false
updateExisting - (boolean) 如果设置为 true,已有的底层自动发现规则(LLD)将会被更新;默认:false
deleteMissing - (boolean) 如果设置为 true,不在导入数据中的底层自动发现规则将会从数据库中被删除;默认 false
graphs object 关于如何导入图表的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true,新的图表将会被创建;默认:false
updateExisting - (boolean) 如何设置为 true,已有的图表将会被更新;默认:false
deleteMissing - (boolean) 如果设置为 true,不在导入数据中的图表将会从数据库中被删除;默认:false
groups object 关于如何导入主机组的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true,新的主机组将会被创建;默认:false
hosts object 关于如何导入主机的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true,新的主机将会被创建;默认:false
updateExisting - (boolean) 如果设置为 true, 已有的主机将会被更新;默认:false
images object 关于如何导入图片的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的图片将会被创建;默认:false;
updateExisting - (boolean) 如果设置为 true, 已有的图片将会被创建; 默认:false
items object 关于如何导入监控项的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的监控项将会被创建;默认:false;
updateExisting - (boolean) 如果设置为 true, 已有的监控项将会被更新;默认:false;
deleteMissing - (boolean) 如果设置为 true, 不在导入数据中的监控项将会从数据库中被删除;默认:false
maps object 关于如何导入拓扑图的规则

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的拓扑图将会被创建;默认:false;
updateExisting - (boolean) 如果设置为 true, 已有的拓扑图将会被更新; 默认:false
screens object 关于如何导入聚合图形的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的聚合图形将会被创建;默认:false;
updateExisting - (boolean) 如果设置为 true,已有的聚合图形将会被更新;默认:false
templateLinkage object 关于如何导入模板链接的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true,新的模板和主机之间的链接将会被创建;默认:false
templates object 关于如何导入模板的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true,新的模板将会被创建;默认:false;
updateExisting - (boolean) 如果设置为 true,已有的模板将会被更新; 默认:false
templateScreens object 关于如何导入聚合图形模板的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true,新的聚合图形模板将会被创建;默认:false;
updateExisting - (boolean) 如果设置为 true,已有的聚合图形模板将会被更新;默认:false;
deleteMissing - (boolean) if set to true, 不在导入数据中的聚合图形模板将会在数据库中被删除;默认:false
triggers object 关于如何导入触发器的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true,新的触发器将会被创建; 默认:false;
updateExisting - (boolean) 如果设置为 true,已有的触发器将会被更新; 默认:false;
deleteMissing - (boolean) 如果设置为 true,不在导入数据中的触发器将会在数据库中被删除; 默认:false
valueMaps object 关于如何导入值映射的规则。

支持的参数:
createMissing - (boolean) 如果设置为 true,新的值映射将会被创建; 默认:false;
updateExisting - (boolean) 如果设置为 true,已有的值映射将会被更新 默认:false

返回值

(boolean) 如果导入成功则返回 true

范例

导入主机和监控项

导入的主机和监控项包含在 XML 字符串中。 如果在 XML 中遗漏了任何监控项,这些监控项将会在数据库中被删除,其他的则不改变。

请求:

{
           "jsonrpc": "2.0",
           "method": "configuration.import",
           "params": {
               "format": "xml",
               "rules": {
                   "applications": {
                       "createMissing": true,
                       "deleteMissing": false
                   },
                   "valueMaps": {
                       "createMissing": true,
                       "updateExisting": false
                   },
                   "hosts": {
                       "createMissing": true,
                       "updateExisting": true
                   },
                   "items": {
                       "createMissing": true,
                       "updateExisting": true,
                       "deleteMissing": true
                   }
               },
               "source": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><zabbix_export><version>4.0</version><date>2012-04-18T11:20:14Z</date><groups><group><name>Zabbix servers</name></group></groups><hosts><host><host>Export host</host><name>Export host</name><description/><proxy/><status>0</status><ipmi_authtype>-1</ipmi_authtype><ipmi_privilege>2</ipmi_privilege><ipmi_username/><ipmi_password/><tls_connect>1</tls_connect><tls_accept>1</tls_accept><tls_issuer/><tls_subject/><tls_psk_identity/><tls_psk/><templates/><groups><group><name>Zabbix servers</name></group></groups><interfaces><interface><default>1</default><type>1</type><useip>1</useip><ip>127.0.0.1</ip><dns/><port>10050</port><bulk>1</bulk><interface_ref>if1</interface_ref></interface></interfaces><applications><application><name>Application</name></application></applications><items><item><name>Item</name><type>0</type><snmp_community/><snmp_oid/><key>item.key</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>Application</name></application></applications><valuemap><name>Host status</name></valuemap><logtimefmt/><preprocessing/><interface_ref>if1</interface_ref><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>1</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item></items><discovery_rules/><macros/><inventory/></host></hosts><triggers><trigger><expression>{Export host:item.key.last()}=0</expression><name>Trigger</name><url/><status>0</status><priority>2</priority><description>Host trigger</description><type>0</type><recovery_mode>1</recovery_mode><recovery_expression>{Export host:item.key.last()}=2</recovery_expression><dependencies/><tags/><correlation_mode>1</correlation_mode><correlation_tag>Tag 01</correlation_tag><manual_close>0</manual_close></trigger></triggers><graphs><graph><name>Graph</name><width>900</width><height>200</height><yaxismin>0.0000</yaxismin><yaxismax>100.0000</yaxismax><show_work_period>1</show_work_period><show_triggers>1</show_triggers><type>0</type><show_legend>1</show_legend><show_3d>0</show_3d><percent_left>0.0000</percent_left><percent_right>0.0000</percent_right><ymin_type_1>0</ymin_type_1><ymax_type_1>0</ymax_type_1><ymin_item_1>0</ymin_item_1><ymax_item_1>0</ymax_item_1><graph_items><graph_item><sortorder>0</sortorder><drawtype>0</drawtype><color>C80000</color><yaxisside>0</yaxisside><calc_fnc>7</calc_fnc><type>0</type><item><host>Export host</host><key>item.key</key></item></graph_item></graph_items></graph></graphs><value_maps><value_map><name>Host status</name><mappings><mapping><value>0</value><newvalue>Up</newvalue></mapping><mapping><value>2</value><newvalue>Unreachable</newvalue></mapping></mappings></value_map></value_maps></zabbix_export>"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": true,
           "id": 1
       }

来源

CConfiguration::import() in frontends/php/include/classes/api/services/CConfiguration.php.

Description

boolean configuration.import(object parameters)

This method allows to import configuration data from a serialized string.

Parameters

(object) Parameters containing the data to import and rules how the data should be handled.

Parameter Type Description
format
(required)
string Format of the serialized string.

Possible values:
json - JSON;
xml - XML.
source
(required)
string Serialized string containing the configuration data.
rules
(required)
object Rules on how new and existing objects should be imported.

The rules parameter is described in detail in the table below.

If no rules are given, the configuration will not be updated.

The rules object supports the following parameters.

Parameter Type Description
applications object Rules on how to import applications.

Supported parameters:
createMissing - (boolean) if set to true, new applications will be created; default: false;
deleteMissing - (boolean) if set to true, applications not present in the imported data will be deleted from the database; default: false.
discoveryRules object Rules on how to import LLD rules.

Supported parameters:
createMissing - (boolean) if set to true, new LLD rules will be created; default: false;
updateExisting - (boolean) if set to true, existing LLD rules will be updated; default: false;
deleteMissing - (boolean) if set to true, LLD rules not present in the imported data will be deleted from the database; default: false.
graphs object Rules on how to import graphs.

Supported parameters:
createMissing - (boolean) if set to true, new graphs will be created; default: false;
updateExisting - (boolean) if set to true, existing graphs will be updated; default: false;
deleteMissing - (boolean) if set to true, graphs not present in the imported data will be deleted from the database; default: false.
groups object Rules on how to import host groups.

Supported parameters:
createMissing - (boolean) if set to true, new host groups will be created; default: false.
hosts object Rules on how to import hosts.

Supported parameters:
createMissing - (boolean) if set to true, new hosts will be created; default: false;
updateExisting - (boolean) if set to true, existing hosts will be updated; default: false.
images object Rules on how to import images.

Supported parameters:
createMissing - (boolean) if set to true, new images will be created; default: false;
updateExisting - (boolean) if set to true, existing images will be updated; default: false.
items object Rules on how to import items.

Supported parameters:
createMissing - (boolean) if set to true, new items will be created; default: false;
updateExisting - (boolean) if set to true, existing items will be updated; default: false;
deleteMissing - (boolean) if set to true, items not present in the imported data will be deleted from the database; default: false.
maps object Rules on how to import maps.

Supported parameters:
createMissing - (boolean) if set to true, new maps will be created; default: false;
updateExisting - (boolean) if set to true, existing maps will be updated; default: false.
screens object Rules on how to import screens.

Supported parameters:
createMissing - (boolean) if set to true, new screens will be created; default: false;
updateExisting - (boolean) if set to true, existing screens will be updated; default: false.
templateLinkage object Rules on how to import template links.

Supported parameters:
createMissing - (boolean) if set to true, new links between templates and host will be created; default: false.
templates object Rules on how to import templates.

Supported parameters:
createMissing - (boolean) if set to true, new templates will be created; default: false;
updateExisting - (boolean) if set to true, existing templates will be updated; default: false.
templateScreens object Rules on how to import template screens.

Supported parameters:
createMissing - (boolean) if set to true, new template screens will be created; default: false;
updateExisting - (boolean) if set to true, existing template screens will be updated; default: false;
deleteMissing - (boolean) if set to true, template screens not present in the imported data will be deleted from the database; default: false.
triggers object Rules on how to import triggers.

Supported parameters:
createMissing - (boolean) if set to true, new triggers will be created; default: false;
updateExisting - (boolean) if set to true, existing triggers will be updated; default: false;
deleteMissing - (boolean) if set to true, triggers not present in the imported data will be deleted from the database; default: false.
valueMaps object Rules on how to import value maps.

Supported parameters:
createMissing - (boolean) if set to true, new value maps will be created; default: false;
updateExisting - (boolean) if set to true, existing value maps will be updated; default: false.

Return values

(boolean) Returns true if importing has been successful.

Examples

Importing hosts and items

Import the host and items contained in the XML string. If any items in XML are missing, they will be deleted from the database, and everything else will be left unchanged.

Request:

{
           "jsonrpc": "2.0",
           "method": "configuration.import",
           "params": {
               "format": "xml",
               "rules": {
                   "applications": {
                       "createMissing": true,
                       "deleteMissing": false
                   },
                   "valueMaps": {
                       "createMissing": true,
                       "updateExisting": false
                   },
                   "hosts": {
                       "createMissing": true,
                       "updateExisting": true
                   },
                   "items": {
                       "createMissing": true,
                       "updateExisting": true,
                       "deleteMissing": true
                   }
               },
               "source": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><zabbix_export><version>4.0</version><date>2012-04-18T11:20:14Z</date><groups><group><name>Zabbix servers</name></group></groups><hosts><host><host>Export host</host><name>Export host</name><description/><proxy/><status>0</status><ipmi_authtype>-1</ipmi_authtype><ipmi_privilege>2</ipmi_privilege><ipmi_username/><ipmi_password/><tls_connect>1</tls_connect><tls_accept>1</tls_accept><tls_issuer/><tls_subject/><tls_psk_identity/><tls_psk/><templates/><groups><group><name>Zabbix servers</name></group></groups><interfaces><interface><default>1</default><type>1</type><useip>1</useip><ip>127.0.0.1</ip><dns/><port>10050</port><bulk>1</bulk><interface_ref>if1</interface_ref></interface></interfaces><applications><application><name>Application</name></application></applications><items><item><name>Item</name><type>0</type><snmp_community/><snmp_oid/><key>item.key</key><delay>30s</delay><history>90d</history><trends>365d</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>Application</name></application></applications><valuemap><name>Host status</name></valuemap><logtimefmt/><preprocessing/><interface_ref>if1</interface_ref><jmx_endpoint/><timeout>3s</timeout><url/><query_fields/><posts/><status_codes>200</status_codes><follow_redirects>1</follow_redirects><post_type>0</post_type><http_proxy/><headers/><retrieve_mode>0</retrieve_mode><request_method>1</request_method><output_format>0</output_format><allow_traps>0</allow_traps><ssl_cert_file/><ssl_key_file/><ssl_key_password/><verify_peer>0</verify_peer><verify_host>0</verify_host><master_item/></item></items><discovery_rules/><macros/><inventory/></host></hosts><triggers><trigger><expression>{Export host:item.key.last()}=0</expression><name>Trigger</name><url/><status>0</status><priority>2</priority><description>Host trigger</description><type>0</type><recovery_mode>1</recovery_mode><recovery_expression>{Export host:item.key.last()}=2</recovery_expression><dependencies/><tags/><correlation_mode>1</correlation_mode><correlation_tag>Tag 01</correlation_tag><manual_close>0</manual_close></trigger></triggers><graphs><graph><name>Graph</name><width>900</width><height>200</height><yaxismin>0.0000</yaxismin><yaxismax>100.0000</yaxismax><show_work_period>1</show_work_period><show_triggers>1</show_triggers><type>0</type><show_legend>1</show_legend><show_3d>0</show_3d><percent_left>0.0000</percent_left><percent_right>0.0000</percent_right><ymin_type_1>0</ymin_type_1><ymax_type_1>0</ymax_type_1><ymin_item_1>0</ymin_item_1><ymax_item_1>0</ymax_item_1><graph_items><graph_item><sortorder>0</sortorder><drawtype>0</drawtype><color>C80000</color><yaxisside>0</yaxisside><calc_fnc>7</calc_fnc><type>0</type><item><host>Export host</host><key>item.key</key></item></graph_item></graph_items></graph></graphs><value_maps><value_map><name>Host status</name><mappings><mapping><value>0</value><newvalue>Up</newvalue></mapping><mapping><value>2</value><newvalue>Unreachable</newvalue></mapping></mappings></value_map></value_maps></zabbix_export>"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Response:

{
           "jsonrpc": "2.0",
           "result": true,
           "id": 1
       }

Source

CConfiguration::import() in frontends/php/include/classes/api/services/CConfiguration.php.