更新

描述

object host.update(object/array hosts)

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

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

参数

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

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

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

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

参数类型描述
groupsobject/array替换当前的主机组
主机将从所有没有被列出的主机组中移除

主机组只能使用 groupid 属性定义。
interfacesobject/array替换当前的主机接口
所有没有列出的接口将从主机移除。
tagsobject/array替换当前的主机标签
所有没有列出的标签将从主机移除。
inventoryobject主机资产清单 属性。
macrosobject/array替换当前主机的用户宏
所有没有列出的宏将从主机移除。
templatesobject/array替换当前主机链接的模板
所有没有列出的目标将从主机取消链接但不会清理。

模板只能使用 templateid 属性定义。
templates_clearobject/array替换并清理当前主机链接的模板

模板只能使用 templateid 属性定义。

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

返回值

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

示例

启用主机

启用主机监控,将主机状态设为 “0”。

请求:

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

响应:

  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. "id": 1
  16. }

响应:

  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. "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. "id": 1
  12. }

响应:

  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": "RHEL 7"
  9. }
  10. },
  11. "id": 1
  12. }

响应:

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

更新已发现主机的宏

改变发现规则创建的 “自动” 宏 为 “手动” 宏,并将它的值改成 “new-value”。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.update",
  4. "params": {
  5. "hostid": "10387",
  6. "macros": {
  7. "hostmacroid": "5541",
  8. "value": "new-value",
  9. "automatic": "0"
  10. }
  11. },
  12. "id": 1
  13. }

响应:

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

更新主机加密

更新主机 “10590” 仅允许Zabbix server使用PSK加密连接,并修改PSK identity和PSK key。 请注意,主机必须使用PSK预配置

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.update",
  4. "params": {
  5. "hostid": "10590",
  6. "tls_connect": 1,
  7. "tls_accept": 2,
  8. "tls_psk_identity": "PSK 002",
  9. "tls_psk": "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9"
  10. },
  11. "id": 1
  12. }

响应:

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

另见

源码

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