object host.update(object/array hosts)
此方法允许 update 现有的 主机。
此方法仅适用于 管理员 和 超级管理员 用户类型。调用该方法的权限可以在用户角色设置中撤销。更多信息请参见 User roles。
(object/array) 主机 属性将被更新。
每个 主机 必须定义 hostid 属性,所有其他属性是可选的。仅给定的属性将被更新,其余属性将保持不变。
但请注意,更新 主机 的技术名称也将根据 主机 的技术名称值自动update 主机 的可见名称(如果未提供或为空)。
除了 主机 外,该方法还接受以下参数。
| 参数 | 数据类型 | 描述 | 
|---|---|---|
| groups | object/array | 主机组,用于替换当前 主机 所属的 主机 组。 请求中未列出的所有 主机 组将被取消链接。 主机 组必须仅定义 groupid属性。 | 
| interfaces | object/array | Host interfaces,用于替换当前 主机 的接口。 请求中未列出的所有接口将被移除。 | 
| tags | object/array | 主机标签,用于替换当前 主机 的标签。 请求中未列出的所有标签将被移除。 | 
| inventory | object | 主机资产清单 属性。 | 
| macros | object/array | User macros,用于替换当前的用户宏。 请求中未列出的所有宏将被移除。 | 
| templates | object/array | Templates,用于替换当前链接的模板。 请求中未列出的所有模板将仅被取消链接。 模板必须仅定义 templateid属性。 | 
| templates_clear | object/array | Templates,用于取消链接并从 主机 中clear。 模板必须仅定义 templateid属性。 | 
与 Zabbix 前端不同,当 name(可见主机名)与 host(技术主机名)相同时,通过 API 更新 host 不会自动update name。两个属性都需要显式更新。
(object) 返回一个 object,其中包含更新后的 主机 的 ID, 位于 hostids 属性下。
启用 主机 监控,即将其状态设置为 "0"。
执行请求:
{
           "jsonrpc": "2.0",
           "method": "host.update",
           "params": {
               "hostid": "10126",
               "status": 0
           },
           "id": 1
       }响应:
解除链接并从主机中clear两个模板。
执行请求:
{
           "jsonrpc": "2.0",
           "method": "host.update",
           "params": {
               "hostid": "10126",
               "templates_clear": [
                   {
                       "templateid": "10124"
                   },
                   {
                       "templateid": "10125"
                   }
               ]
           },
           "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",
           "method": "host.update",
           "params": {
               "hostid": "10387",
               "inventory_mode": 0,
               "inventory": {
                   "location": "Latvia, Riga"
               }
           },
           "id": 1
       }响应:
将所有 主机 标签替换为新的标签。
执行请求:
{
           "jsonrpc": "2.0",
           "method": "host.update",
           "params": {
               "hostid": "10387",
               "tags": {
                   "tag": "os",
                   "value": "rhel-7"
               }
           },
           "id": 1
       }响应:
将创建的发现规则从“自动”宏更改为“手动”,并将其值更改为“new-value”。
执行请求:
{
           "jsonrpc": "2.0",
           "method": "host.update",
           "params": {
               "hostid": "10387",
               "macros": {
                   "hostmacroid": "5541",
                   "value": "new-value",
                   "automatic": "0"
               }
           },
           "id": 1
       }响应:
更新 主机"10590",仅在从 主机 到 Zabbix server 的连接中使用 PSK 加密,并更改 PSK 身份标识和 PSK 密钥。 请注意,主机 必须为 为服务器agent通信配置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
       }响应:
在 ui/include/classes/api/services/CHost.php 中的 CHost::update()。