Стоит задача мониторить состояние портов (ifOperStatus) на оборудовании с функцией failover по snmp. При этом необходимо при смене порта не порушить работу триггеров.
Для определения нужных нам портов как нельзя лучше подходит Шаблон Template SNMP Interfaces с обнаруженим, в паре с дескрипшенами на двух портах, напрмиер FO_01 и FO_02, ОДНАКО наткнулся вот на такую беду - вид ключа при дискавере имеет вид:
ifOperStatus[{#SNMPVALUE}]
Использование таких ключей в триггерах для дальнейшей обработки осложнено тем, что порт на коммутаторе может поменяться (например сгорел), изменится ifDescr или ifIndex и ключ у нужного порта поменяется, триггер перестанет работать корректно.
При попытке создания уникального ключа, например ifOperStatus.fo_01 в прототипах элементов данных - невозможно, zabbix упорно говорит, что не может создать элемент данных, так как он уже существует, даже при условии что с помощью фильтра или скрипта, возвращающего JSON объект - элемент создается один.
Проверено на версиях Zabbix Appliance 2.2.2 и Zabbix Stable 2.2.6
Есть, конечно вариант использовать ifAlias со строго закрепленным PortDescription, но это самый последний вариант.
Думал в сторону инвентарных данных узла в паре с заполнением этих данных при дискавере, но их значения невозможно использовать в выражениях триггеров.
Есть ли у кого-нибудь идея как еще это можно реализовать?
Для определения нужных нам портов как нельзя лучше подходит Шаблон Template SNMP Interfaces с обнаруженим, в паре с дескрипшенами на двух портах, напрмиер FO_01 и FO_02, ОДНАКО наткнулся вот на такую беду - вид ключа при дискавере имеет вид:
ifOperStatus[{#SNMPVALUE}]
Использование таких ключей в триггерах для дальнейшей обработки осложнено тем, что порт на коммутаторе может поменяться (например сгорел), изменится ifDescr или ifIndex и ключ у нужного порта поменяется, триггер перестанет работать корректно.
При попытке создания уникального ключа, например ifOperStatus.fo_01 в прототипах элементов данных - невозможно, zabbix упорно говорит, что не может создать элемент данных, так как он уже существует, даже при условии что с помощью фильтра или скрипта, возвращающего JSON объект - элемент создается один.
Проверено на версиях Zabbix Appliance 2.2.2 и Zabbix Stable 2.2.6
Есть, конечно вариант использовать ifAlias со строго закрепленным PortDescription, но это самый последний вариант.
Думал в сторону инвентарных данных узла в паре с заполнением этих данных при дискавере, но их значения невозможно использовать в выражениях триггеров.
Есть ли у кого-нибудь идея как еще это можно реализовать?