configuration.importcompare

描述

array configuration.importcompare(object parameters)

此方法允许将导入文件与当前系统元素进行比较并显示将更改的内容如果此文件被导入后。

该方法仅适用于任何类型的用户。 调用该方法的授权可以在用户角色设置中进行设置。 详情请参见用户角色

参数

(object) 参数包含可能要导入的数据以及应如何处理数据的规则

参数类型说明
format
(required)
string序列化字符串的格式

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

rules 参数在下表中进行详细描述

如果没有规则,配置将不被更新且结果为空。

仅对主机组和模板进行比较。触发器和图表将仅对导入的模板进行比较,任何其他的部分都将被视为“新的”。

rules支持如下参数

参数类型说明
discoveryRulesobject导入低级别自动发现(LLD)的规则

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

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

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的主机组将会被创建; 默认: false;
updateExisting - (boolean) 如果设置为 true, 已有的主机组将会被更新; 默认: false.
hostsobject导入主机的规则

支持的参数:
createMissing - (boolean) 如果设置为true, 新的主机将会被创建; 默认: false;
updateExisting - (boolean) 如果设置为true, 现有主机将被更新; 默认: false.

此参数对输出没有影响。它只允许与 configuration.import保持一致
httptestsobject导入web场景的规则

支持的参数:
createMissing - (boolean)如果设置为 true, 新的web监控场景将会被创建; 默认: false;
updateExisting - (boolean) 如果设置为 true, 现有的web监控场景将会被更新; 默认: false;
deleteMissing - (boolean) 如果设置为 true, 在导入数据中没有的web场景将会从数据库中彻底删除; 默认: false.
imagesobject导入图片的规则

支持的参数:
createMissing - (boolean)如果设置为true, 新的图片将会被创建; 默认: false;
updateExisting - (boolean)如果设置为 true, 现有的图片将会被更新; 默认: false.

此参数对输出没有影响。它只允许与 configuration.import保持一致
itemsobject导入监控项的规则

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

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的拓扑图将会被创建; 默认: false;
updateExisting - (boolean) 如果设置为 true, 现有的拓扑图将被更新; 默认: false.

此参数对输出没有影响。它只允许与 configuration.import保持一致.
mediaTypesobject导入媒介类型的规则

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的媒介类型将被创建; 默认: false;
updateExisting - (boolean) 如果设置为 true, 现有的媒介类型将被更新; 默认: false.

此参数对输出没有影响。它只允许与 configuration.import保持一致.
templateLinkageobject导入模板链接的规则

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的模板和主机之间的链接将会被创建; 默认: false;
deleteMissing - (boolean) 如果设置为 true, 不在导入数据中的模板链接将会从数据库中被删除; 默认: false.
templatesobject导入模板的规则.

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的模板将被创建; 默认: false;
updateExisting - (boolean) 如果设置为 true, 已有的模板将被更新; 默认: false.
templateDashboardsobject导入模板仪表板的规则

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的模板仪表板将被创建; default: false;
updateExisting - (boolean) 如果设置为 true, 已有的模板仪表板将被更新; default: false;
deleteMissing - (boolean) 如果设置为 true, 不在导入数据中的模板仪表板将会从数据库中被删除; default: false.
triggersobject导入触发器的规则

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

支持的参数:
createMissing - (boolean) 如果设置为 true, 新的值映射将被创建; 默认: false;
updateExisting - (boolean)如果设置为 true, 已有的值映射将被更新; 默认: false;
deleteMissing - (boolean) 如果设置为 true, 不在导入数据中的值映射将会从数据库中被删除; 默认: false.

返回值

(array) 以数组形式返回配置中的变更内容

示例

导入主机和监控项

导入YAML字符串中包含的模板和监控项。如果在YAML中缺失的监控项,它们将显示为已删除,其它内容将保持不变。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "configuration.import",
  4. "params": {
  5. "format": "xml",
  6. "rules": {
  7. "groups": {
  8. "createMissing": true,
  9. "updateExisting": true
  10. },
  11. "templates": {
  12. "createMissing": true,
  13. "updateExisting": true
  14. },
  15. "items": {
  16. "createMissing": true,
  17. "updateExisting": true,
  18. "deleteMissing": true
  19. },
  20. "triggers": {
  21. "createMissing": true,
  22. "updateExisting": true,
  23. "deleteMissing": true
  24. },
  25. "discoveryRules": {
  26. "createMissing": true,
  27. "updateExisting": true,
  28. "deleteMissing": true
  29. },
  30. "valueMaps": {
  31. "createMissing": true,
  32. "updateExisting": false
  33. }
  34. },
  35. "source": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><zabbix_export><version>5.4</version><date>2021-05-27T07:12:07Z</date><groups><group><uuid>6f6799aa69e844b4b3918f779f2abf08</uuid><name>Zabbix servers</name></group></groups><templates><template><uuid>e1bde9bf2f0544f5929f45b82502e744</uuid><template>Export template</template><name>Export template</name><groups><group><name>Zabbix servers</name></group></groups><items><item><uuid>3237bc89226e42ed8207574022470e83</uuid><name>Item</name><key>item.key</key><delay>30s</delay><valuemap><name>Host status</name></valuemap><triggers><trigger><uuid>bd1ed0089e4b4f35b762c9d6c599c348</uuid><expression>last(/Export template/item.key)=0</expression><name>Trigger</name></trigger></triggers></item></items><discovery_rules><discovery_rule><uuid>c91616bcf4a44f349539a1b40cb0979d</uuid><name>Discovery rule</name><key>rule.key</key><item_prototypes><item_prototype><uuid>7e164881825744248b3039af3435cf4b</uuid><name>Item prototype</name><key>prototype.key</key></item_prototype></item_prototypes></discovery_rule></discovery_rules><valuemaps><valuemap><uuid>7e666857c5df4af3a338349586f2afc3</uuid><name>Host status</name><mappings><mapping><value>0</value><newvalue>Up</newvalue></mapping><mapping><value>2</value><newvalue>Unreachable</newvalue></mapping></mappings></valuemap></valuemaps></template></templates></zabbix_export>"
  36. },
  37. "auth": "038e1d7b1735c6a5436ee9eae095879e",
  38. "id": 1
  39. }

响应:

  1. {
  2. "jsonrpc":"2.0",
  3. "result":{
  4. "templates":{
  5. "updated":[
  6. {
  7. "before":{
  8. "uuid":"e1bde9bf2f0544f5929f45b82502e744",
  9. "template":"Export template",
  10. "name":"Export template"
  11. },
  12. "after":{
  13. "uuid":"e1bde9bf2f0544f5929f45b82502e744",
  14. "template":"Export template",
  15. "name":"Export template"
  16. },
  17. "items":{
  18. "added":[
  19. {
  20. "after":{
  21. "uuid":"3237bc89226e42ed8207574022470e83",
  22. "name":"Item",
  23. "key":"item.key",
  24. "delay":"30s",
  25. "valuemap":{
  26. "name":"Host status"
  27. }
  28. },
  29. "triggers":{
  30. "added":[
  31. {
  32. "after":{
  33. "uuid":"bd1ed0089e4b4f35b762c9d6c599c348",
  34. "expression":"last(/Export template/item.key)=0",
  35. "name":"Trigger"
  36. }
  37. }
  38. ]
  39. }
  40. }
  41. ],
  42. "removed":[
  43. {
  44. "before":{
  45. "uuid":"bd3e7b28b3d544d6a83ed01ddaa65ab6",
  46. "name":"Old Item",
  47. "key":"ite_old.key",
  48. "delay":"30s",
  49. "valuemap":{
  50. "name":"Host status"
  51. }
  52. }
  53. }
  54. ]
  55. },
  56. "discovery_rules":{
  57. "updated":[
  58. {
  59. "before":{
  60. "uuid":"c91616bcf4a44f349539a1b40cb0979d",
  61. "name":"Discovery rule",
  62. "key":"rule.key"
  63. },
  64. "after":{
  65. "uuid":"c91616bcf4a44f349539a1b40cb0979d",
  66. "name":"Discovery rule",
  67. "key":"rule.key"
  68. },
  69. "item_prototypes":{
  70. "updated":[
  71. {
  72. "before":{
  73. "uuid":"7e164881825744248b3039af3435cf4b",
  74. "name":"Old item prototype",
  75. "key":"prototype_old.key"
  76. },
  77. "after":{
  78. "uuid":"7e164881825744248b3039af3435cf4b",
  79. "name":"Item prototype",
  80. "key":"prototype.key"
  81. }
  82. }
  83. ]
  84. }
  85. }
  86. ]
  87. }
  88. }
  89. ]
  90. }
  91. },
  92. "id":1
  93. }

来源

CConfiguration::importcompare() in ui/include/classes/api/services/CConfiguration.php.