host.update

描述

object host.update(object/array hosts)

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

此方法仅适用于管理员超级管理员用户类型。调用该方法的权限可在用户角色设置中撤销。更多信息请参阅User roles

参数

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

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

需注意:更新主机技术名称时,若未提供可见名称(或为空),系统将自动使用技术名称值更新可见名称。

主机外,该方法还接受以下参数:

参数 数据类型 描述
groups object/array 用于替换当前主机所属主机组的主机主机组

主机组必须定义groupid属性。未在请求中列出的主机组将被解除关联
interfaces object/array 用于替换当前主机接口的主机interfaces

未在请求中列出的接口将被移除
tags object/array 用于替换当前主机标签的主机主机标签

未在请求中列出的标签将被移除
inventory object 主机主机资产清单属性
macros object/array 用于替换当前用户宏的User macros

未在请求中列出的宏将被移除
templates object/array 用于替换当前链接模板的Templates。未在请求中列出的模板仅会被解除关联

模板必须定义templateid属性
templates_clear object/array 用于从主机解除关联并清除的Templates

模板必须定义templateid属性

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

返回值

(object) 返回一个包含已更新主机 ID的object,存储在hostids属性下。

示例

启用主机

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

请求:

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

响应:

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

解除模板关联

从主机中解绑并清除两个模板。

请求:

{
           "jsonrpc": "2.0",
           "method": "host.update",
           "params": {
               "hostid": "10126",
               "templates_clear": [
                   {
                       "templateid": "10124"
                   },
                   {
                       "templateid": "10125"
                   }
               ]
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "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"
                   }
               ]
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "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"
               }
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "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"
               }
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "hostids": [
                   "10387"
               ]
           },
           "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"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

响应:

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

另请参阅

来源

CHost::update() 位于 ui/include/classes/api/services/CHost.php 文件中。