9 Заметки по обновлению для 2.4.1

Проблема конвертации триггеров и вычисляемых элементов данных в новый синтаксис

Патчи обновления базы данных в 2.4.0 автоматически конвертируют существующие триггеры и вычисляемые элементы данных, чтобы использовался новый синтаксис.

Тем не менее, эти патчи имели проблему, в частности в макросе низкоуровневого обнаружения символ заменялся "#" на "<>". Таким образом, {#MACRO} макрос мог быть заменен на {<>MACRO}.

Такая проблема коснулась только тех макросы, которые были независимой частью выражения, а не частью ключа. Например, выражение {host:snmp.oid[{#SNMPINDEX}].last()} # {#SNMPVALUE} могло быть преобразовано в {host:snmp.oid[{#SNMPINDEX}].last()} <> {<>SNMPVALUE}.

В 2.4.1, патчи обновления базы данных исправлены, таким образом обновление с 2.2 на 2.4.1 должно пройти без ошибок. Тем не менее, патчи не исправляют выражения, которые уже были испорчены обновлением с 2.2 на 2.4.0.

Если вы желаете исправить такие поломанные выражения, вы можете начать с поиска какие выражения были повреждены, используя следующие запросы:

select triggerid, expression from triggers where expression like '%{<>%';
       select itemid, key_, params from items where type=15 and params like '%{<>%';

Далее вам необходимо заменить в этих выражениях "{<>" на "{#".