ZABBIX BUGS AND ISSUES

value mapping not performed for {ITEM.VALUE} inside trigger names

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 1.8.3, 1.8.4, 1.8.10, 1.9.9 (beta)
  • Fix Version/s: 1.8.14rc1, 2.0.1, 2.1.0
  • Component/s: Frontend (F)
  • Environment:
    Zabbix 1.8.4
    PHP 5.3.2
    Mysql Server 5.1.48
    FreeBSD 8.1-RELEASE x64
  • Zabbix ID:
    Reviewed 2.0

Description

Problem similar to that described by me in ZBX-2250, only with the macro {ITEM.VALUE}
 The problem lies in the fact that the function does not work when using a macro ValueMapped {ITEM.VALUE} in the description of the trigger.
 For the macro {ITEM.LASTVALUE}, at least in the menu Monitoring -> Events and Monitoring -> Triggers, data are substituted correctly.

 For the macro {ITEM.VALUE} data correctly substituted for notification via e-mail.
 At the same time in Monitoring -> Events and Monitoring -> Triggers using ValueMapped, the data is displayed without any conversion.
----------------------------------------------
Проблема аналогичная описанная мной в ZBX-2250, только с макросом {ITEM.VALUE}
Суть проблемы заключается в том, что не срабатывает функция ValueMapped при использовании макроса {ITEM.VALUE} в описании триггера.
Для макроса {ITEM.LASTVALUE} , по крайней мере в меню Monitoring -> Events и Monitoring -> Triggers, данные подставляются корректно.

Для макроса {ITEM.VALUE} данные корректно подставляются при нотификации по электронной почте.
В тоже время в Monitoring -> Events и Monitoring -> Triggers при использовании ValueMapped, данные отображаются без преобразования.

Issue Links

Activity

Hide
José Roberto Prado added a comment - - edited

I suffer with this problem. I do not use {ITEM.LASTVALUE} lose because the historical of events, which is only possible with {ITEM.VALUE}. Can anything be done to bypass this problem? Any predictions to fix?

Zabbix Version 1.8.4

Show
José Roberto Prado added a comment - - edited I suffer with this problem. I do not use {ITEM.LASTVALUE} lose because the historical of events, which is only possible with {ITEM.VALUE}. Can anything be done to bypass this problem? Any predictions to fix? Zabbix Version 1.8.4
Hide
Dmitrij Gavrilenko added a comment -

Для решения данной проблемы выполнил модификацию файла zabbix-1.8.5/frontends/php/include/triggers.inc.php в строках 1633-1639

строки:
$macro = '{ITEM.VALUE'.($i ? $i : '').'}';
if(zbx_strstr($description, $macro)){ $value=($flag==ZBX_FLAG_TRIGGER)? trigger_get_func_value($row['expression'],ZBX_FLAG_TRIGGER,$i ? $i : 1, 1): trigger_get_func_value($row['expression'],ZBX_FLAG_EVENT,$i ? $i : 1, $row['clock']); $description = str_replace($macro, $value, $description); }

заменил на:
$macro = '{ITEM.VALUE'.($i ? $i : '').'}';
if(zbx_strstr($description, $macro)){
$value=($flag==ZBX_FLAG_TRIGGER)?
trigger_get_func_value($row['expression'],ZBX_FLAG_TRIGGER,$i ? $i : 1, 1):
trigger_get_func_value($row['expression'],ZBX_FLAG_EVENT,$i ? $i : 1, $row['clock'])
// $description = str_replace($macro, $value, $description);

$functionid = trigger_get_N_functionid($row['expression'], $i ? $i : 1);
if(isset($functionid)){ $sql = 'SELECT i.lastvalue, i.value_type, i.itemid, i.valuemapid, i.units '. ' FROM items i, functions f '. ' WHERE i.itemid=f.itemid '. ' AND f.functionid='.$functionid; $row2=DBfetch(DBselect($sql)); $row2['lastvalue'] = $value; $description = str_replace($macro, format_lastvalue($row2), $description); }
}

Сдела некий симбиоз обработки маппирования для макросов {ITEM.VALUE} и {ITEM.LASTVALUE}
В принципе, маппирование работает, но за корректность модификации 100% гарантию дать не могу. Используйте на свой страх и риск!!!

Show
Dmitrij Gavrilenko added a comment - Для решения данной проблемы выполнил модификацию файла zabbix-1.8.5/frontends/php/include/triggers.inc.php в строках 1633-1639 строки: $macro = '{ITEM.VALUE'.($i ? $i : '').'}'; if(zbx_strstr($description, $macro)){ $value=($flag==ZBX_FLAG_TRIGGER)? trigger_get_func_value($row['expression'],ZBX_FLAG_TRIGGER,$i ? $i : 1, 1): trigger_get_func_value($row['expression'],ZBX_FLAG_EVENT,$i ? $i : 1, $row['clock']); $description = str_replace($macro, $value, $description); } заменил на: $macro = '{ITEM.VALUE'.($i ? $i : '').'}'; if(zbx_strstr($description, $macro)){ $value=($flag==ZBX_FLAG_TRIGGER)? trigger_get_func_value($row['expression'],ZBX_FLAG_TRIGGER,$i ? $i : 1, 1): trigger_get_func_value($row['expression'],ZBX_FLAG_EVENT,$i ? $i : 1, $row['clock']) // $description = str_replace($macro, $value, $description); $functionid = trigger_get_N_functionid($row['expression'], $i ? $i : 1); if(isset($functionid)){ $sql = 'SELECT i.lastvalue, i.value_type, i.itemid, i.valuemapid, i.units '. ' FROM items i, functions f '. ' WHERE i.itemid=f.itemid '. ' AND f.functionid='.$functionid; $row2=DBfetch(DBselect($sql)); $row2['lastvalue'] = $value; $description = str_replace($macro, format_lastvalue($row2), $description); } } Сдела некий симбиоз обработки маппирования для макросов {ITEM.VALUE} и {ITEM.LASTVALUE} В принципе, маппирование работает, но за корректность модификации 100% гарантию дать не могу. Используйте на свой страх и риск!!!
Hide
José Roberto Prado added a comment - - edited

Thank you. It worked very well in both the 1.8.3 and the 1.8.5 version.

Just an observation: with the change I noticed that the text of trigger were shortened. But this is no problem for me.

Show
José Roberto Prado added a comment - - edited Thank you. It worked very well in both the 1.8.3 and the 1.8.5 version. Just an observation: with the change I noticed that the text of trigger were shortened. But this is no problem for me.
Hide
Alexander Vladishev added a comment -

Fixed with ZBX-4918 in pre-1.8.14rc1 r27509, pre-2.0.1rc1 r27697, pre-2.1.0 (beta) r27698.

Show
Alexander Vladishev added a comment - Fixed with ZBX-4918 in pre-1.8.14rc1 r27509, pre-2.0.1rc1 r27697, pre-2.1.0 (beta) r27698.

People

Vote (1)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: