Не удается ни обновить, ни удалить триггеры Zabbix с помощью Zabbix Rest API

Я пытаюсь изменить триггеры Zabbix через его API, но это не позволяет мне обновлять триггеры с помощью метода API " trigger.update ", а также для удаления триггеров с помощью метода API " trigger.delete ".

Мне удалось без проблем создавать, обновлять и удалять группы хостов, хосты и шаблоны с Zabbix API, но, как я уже сказал выше, я не могу изменять триггеры и не могу выяснить причину.

Когда я пытаюсь удалить триггер с этими параметрами (чтобы я мог воссоздать его снова с новыми значениями), Zabbix API возвращает мне следующую ошибку:

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

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

И когда я пытаюсь обновить триггер со следующими параметрами, Zabbix API возвращает другую ошибку:

{"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".

Итак, сообщения об ошибках как для операций обновления, так и для удаления жалуются на что-то, связанное с "шаблонным триггером". Я хочу изменить триггеры глобально, чтобы изменения можно было применить на всех хостах, с которыми связан шаблон триггера.

Может ли кто-нибудь указать, в чем может быть причина, по которой Zabbix не позволяет мне ни обновлять, ни удалять триггеры? Большое спасибо.


person Ulysses Alves    schedule 09.05.2019    source источник


Ответы (1)


Во-первых, обратите внимание, что это не REST API, а JSON-RPC.

Во-вторых, ваша проблема в том, что вы используете идентификатор триггера шаблонного триггера, то есть один на хосте и поступающий из шаблона. Если вы попытаетесь удалить такой триггер в веб-интерфейсе Zabbix, вы получите такое же сообщение об ошибке.

Когда вы говорите, что хотите обновить его в шаблоне, решение состоит в том, чтобы использовать идентификатор триггера для триггера в целевом шаблоне.

person Richlv    schedule 10.05.2019
comment
Просто дополнение, часть trigger.update возвращает error.message: Invalid params: Ulysses, пожалуйста, проверьте выражение, вы перевернули закрывающую фигурную скобку и двойные кавычки. - person Simone Zabberoni; 10.05.2019
comment
@SimoneZabberoni, выражение было в порядке. Я думаю, что это немного сбивает с толку, потому что JSON неправильно отформатирован в вопросе. - person Ulysses Alves; 10.05.2019
comment
@Richlv, ты прав. Я выбирал поиск триггера для данного хоста (передавая hostid в параметр фильтра метода trigger.get). После удаления hostid из фильтра и поиска только шаблонных триггеров (шаблонный параметр = true в trigger.get) я смог успешно обновить триггер. Спасибо большое! - person Ulysses Alves; 10.05.2019