更新

描述

object host.update(object/array hosts)

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

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

参数

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

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

但请注意,更新主机技术名称时,也会将主机的可见名称更新为主机技术名称的值(如果未单独提供可见名称)。

标准主机属性外,该方法还接受以下参数。

参数 类型 描述
groups object/array 用于替换主机当前所属主机组的主机组
请求中未列出的所有主机组都将被取消关联。

主机组必须仅定义 groupid 属性。
interfaces object/array 用于替换当前主机接口的主机接口
请求中未列出的所有接口都将被移除。
tags object/array 用于替换当前主机标签的主机标签
请求中未列出的所有标签都将被移除。
inventory object 主机资产记录属性。
macros object/array 用于替换当前用户宏的用户宏
请求中未列出的所有宏都将被移除。
templates object/array 用于替换当前已关联模板的模板
请求中未列出的所有模板将仅被取消关联。

模板必须仅定义 templateid 属性。
templates_clear object/array 要从主机取消关联并清除的模板

模板必须仅定义 templateid 属性。

返回值

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

示例

启用主机

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

请求:

{
    "jsonrpc": "2.0",
    "method": "host.update",
    "params": {
        "hostid": "10126",
        "status": 0
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10126"
        ]
    },
    "id": 1
}

启用多个主机

启用对两个主机的监控,即将它们的状态设置为“0”。

请求:

{
    "jsonrpc": "2.0",
    "method": "host.update",
    "params": [
        {
            "hostid": "10127",
            "status": 0
        },
        {
            "hostid": "10128",
            "status": 0
        }
    ],
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10127",
            "10128"
        ]
    },
    "id": 1
}

取消链接模板

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

请求:

{
    "jsonrpc": "2.0",
    "method": "host.update",
    "params": {
        "hostid": "10126",
        "templates_clear": [
            {
                "templateid": "10124"
            },
            {
                "templateid": "10125"
            }
        ]
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10126"
        ]
    },
    "id": 1
}

更新主机宏

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

请求:

{
    "jsonrpc": "2.0",
    "method": "host.update",
    "params": {
        "hostid": "10126",
        "macros": [
            {
                "macro": "{$PASS}",
                "value": "password"
            },
            {
                "macro": "{$DISC}",
                "value": "sda",
                "description": "Updated description"
            }
        ]
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10126"
        ]
    },
    "id": 1
}

更新主机资产清单

更改主机资产清单模式并添加位置信息。

请求:

{
    "jsonrpc": "2.0",
    "method": "host.update",
    "params": {
        "hostid": "10387",
        "inventory_mode": 0,
        "inventory": {
            "location": "Latvia, Riga"
        }
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10387"
        ]
    },
    "id": 1
}

更新主机标签

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

请求

{
    "jsonrpc": "2.0",
    "method": "host.update",
    "params": {
        "hostid": "10387",
        "tags": {
            "tag": "os",
            "value": "rhel-7"
        }
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10387"
        ]
    },
    "id": 1
}

更新已发现主机的宏

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

请求:

{
    "jsonrpc": "2.0",
    "method": "host.update",
    "params": {
        "hostid": "10387",
        "macros": {
            "hostmacroid": "5541",
            "value": "new-value",
            "automatic": "0"
        }
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10387"
        ]
    },
    "id": 1
}

更新主机加密

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

请求:

{
    "jsonrpc": "2.0",
    "method": "host.update",
    "params": {
        "hostid": "10590",
        "tls_connect": 1,
        "tls_accept": 2,
        "tls_psk_identity": "PSK 002",
        "tls_psk": "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9"
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10590"
        ]
    },
    "id": 1
}

另请参见

源码

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