更新
描述
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.