无法使用 Zabbix Rest 更新或删除 Zabbix 触发器 API

Can't Update Nor Delete Zabbix Triggers With Zabbix Rest API

我正在尝试通过 API 修改 Zabbix 触发器,但它不允许我使用 API 方法 "trigger.update" nor to delete the triggers with API method "trigger.delete" 更新触发器。

我已经成功创建、更新和删除主机组、主机和模板,使用 Zabbix 没有问题 API,但正如我上面所说,我不能更改触发器,也不能'找不到原因。

当我尝试使用这些参数删除触发器(以便我可以使用新值重新创建它)时,Zabbix API returns 我出现以下错误:

{"jsonrpc":"2.0","method":"trigger.delete","id":1,"auth":"token","params":["XXXX"]}

Cannot delete templated trigger "MyTriggerName:{SomoHostName:ItemName.regexp(^OK)}<>1".

当我尝试使用以下参数更新触发器时,Zabbix API returns 另一个错误:

{"jsonrpc":"2.0","method":"trigger.update","id":1,"auth":"token","params":{"triggerid":"XXX","status":0,"expression":"{TemplateName:ItemName.regexp(^OK)}<>1"}}

error.message: Invalid params.
error.data: Cannot update "expression" for templated trigger "TriggerName".

因此,更新和删除操作的错误消息抱怨与 "templated trigger" 相关的事情。我想全局修改触发器,以便可以将更改应用于所有链接了触发器模板的主机。

有人可以指出 Zabbix 不允许我更新或删除触发器的原因吗?非常感谢。

首先,请注意这不是 REST API,而是 JSON-RPC。

其次,您的问题是您使用的是模板化触发器的触发器 ID - 即主机上的触发器 ID,并且来自模板。如果您尝试在 Zabbix 前端删除这样的触发器,您会收到相同的错误消息。

如您所说,要在模板上更新它,解决方案是使用目标模板上触发器的触发器 ID。