更新

描述

object host.update(object/array **hosts**)

该方法用来更新已存在的主机。

参数

(object/array) 要更新的主机属性。

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

但是请注意,更新主机名称还会通过主机的名称值来更新主机的可见名称(如果未提供或为空)。

另外,对于标准主机属性,此方法接受如下参数。

参数类型描述
groups对象/数组替换主机所属的当前主机组

主机组必须具有定义的groupid属性。请求中未列出的所有主机组将被取消链接。
interfaces对象/数组替换当前的主机接口
tagsobject/array替换当前的主机标签

请求中未列出的所有标签将被删除。
inventory对象主机资产清单属性。
macros对象/数组替换当前用户宏
templates对象/数组替换当前链接的模板。请求中未列出的所有模板将仅取消链接。

模板必须已定义过templateid属性。
templates_clear对象/数组从主机中删除模板链接并清除。

模板必须已定义过templateid属性。

相对于Zabbix前端,当namehost一致,更新host的时候不会自动更新name。两个属性需要明确的更新。这两个属性都需要显式地更新。

返回值

(object)hostids属性中返回包含已更新主机ID对象。

示例

启用主机

启用主机,将status设置为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. }
  15. ]
  16. },
  17. "auth": "038e1d7b1735c6a5436ee9eae095879e",
  18. "id": 1
  19. }

响应:

  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": 2
  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.