更新

描述

host.update(主机对象/数组)对象

该方法允许更新现有主机。

这个方法仅允许 管理员超级管理员 用户类型。可以在用户角色中撤销调用方法的权限设置。详情参考 用户角色

参数

(对象/数组) 待更新的主机属性。

hostid 属性必须为每台主机定义,其他属性都是可选的。只有给定的属性将被更新,其他所有属性将保持不变。

但是,请注意,更新主机技术名称也将根据主机的技术名称值更新主机的可见名称(如果没有给出或为空)。

除了标准主机属性以外,此方法接受如下参数:

参数描述
groups对象/数组更换主机所属的主机

主机组必须已定义 groupid 属性。所有未在请求中列出的主机组将被解除链接。
interfaces对象/数组主机接口用于替换当前主机接口。

所有未在请求中列出的接口将被删除。
tags对象/数组主机标签替换当前主机标签。

所有未在请求中列出的标签将被删除。
inventoryobject主机清单属性。
macros对象/数组用户宏替换当前用户宏。

所有未在请求中列出的宏将被删除。
templates对象/数组模板替换当前链接的模板。所有未在请求中列出的模板只会被解除链接。

模板必须定义了 templateid 属性。
templates_clear对象/数组模板取消与主机的链接并清除。

模板必须定义了 templateid 属性。

与Zabbix前端不同,当 name (可见主机名)与 host (技术主机名)相同时,通过API更新 host 不会自动更新 name 。这两个属性都需要显式更新。

返回值

(object) 返回一个对象,该对象包含 hostids 属性下更新的主机的id。

示例

开启主机监控

启用主机监控,即设置主机监控状态为0。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.update",
  4. "params": {
  5. "hostid": "10126",
  6. "status": 0
  7. },
  8. "auth": "038e1d7b1735c6a5436ee9eae095879e",
  9. "id": 1
  10. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "hostids": [
  5. "10126"
  6. ]
  7. },
  8. "id": 1
  9. }

删除模板

从主机上取消链接并清除两个模板。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.update",
  4. "params": {
  5. "hostid": "10126",
  6. "templates_clear": [
  7. {
  8. "templateid": "10124"
  9. },
  10. {
  11. "templateid": "10125"
  12. }
  13. ]
  14. },
  15. "auth": "038e1d7b1735c6a5436ee9eae095879e",
  16. "id": 1
  17. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "hostids": [
  5. "10126"
  6. ]
  7. },
  8. "id": 1
  9. }

更新用户宏

用两个新的宏替换所有主机宏。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.update",
  4. "params": {
  5. "hostid": "10126",
  6. "macros": [
  7. {
  8. "macro": "{$PASS}",
  9. "value": "password"
  10. },
  11. {
  12. "macro": "{$DISC}",
  13. "value": "sda",
  14. "description": "Updated description"
  15. }
  16. ]
  17. },
  18. "auth": "038e1d7b1735c6a5436ee9eae095879e",
  19. "id": 1
  20. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "hostids": [
  5. "10126"
  6. ]
  7. },
  8. "id": 1
  9. }

更新主机资产

改变主机资产模式和添加位置。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.update",
  4. "params": {
  5. "hostid": "10387",
  6. "inventory_mode": 0,
  7. "inventory": {
  8. "location": "Latvia, Riga"
  9. }
  10. },
  11. "auth": "038e1d7b1735c6a5436ee9eae095879e",
  12. "id": 1
  13. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "hostids": [
  5. "10387"
  6. ]
  7. },
  8. "id": 1
  9. }

更新主机标记

用一个新的主机标记替换所有的主机标记。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.update",
  4. "params": {
  5. "hostid": "10387",
  6. "tags": {
  7. "tag": "OS",
  8. "value": "CentOS 7"
  9. }
  10. },
  11. "auth": "038e1d7b1735c6a5436ee9eae095879e",
  12. "id": 1
  13. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "hostids": [
  5. "10387"
  6. ]
  7. },
  8. "id": 1
  9. }

另请参阅

源代码

CHost::update() in ui/include/classes/api/services/CHost.php.