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",
"method": "host.update",
"params": {
"hostid": "10126",
"templates_clear": [
{
"templateid": "10124"
},
{
"templateid": "10125"
}
]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"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",
"method": "host.update",
"params": {
"hostid": "10387",
"inventory_mode": 0,
"inventory": {
"location": "Latvia, Riga"
}
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
响应:
将所有主机标签替换为新的标签。
请求:
{
"jsonrpc": "2.0",
"method": "host.update",
"params": {
"hostid": "10387",
"tags": {
"tag": "OS",
"value": "RHEL 7"
}
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"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
}
响应:
CHost::update() 位于 ui/include/classes/api/services/CHost.php 文件中。