Доброго времени суток. С помощью php скрипта необходимо выгребать данные о состоянии триггеров, мне необходимо выгребать все триггеры (которые отображаются на странице /zabbix/tr_status.php) у которых статус != OK.
в данный момент получи список триггеров
$tr = ZabbixAPI::fetch_array('trigger','get', array('output'=>'extend')) or die('error: '.print_r(ZabbixAPI::getLastError(),true));
print_r($tr);
скрипт выдал достаточно большое количество результатов, хотя на странице состояние триггеров нет ни одного активного - подскажите, пожалуйста, как выгребать только активные триггеры с ошибками.
Разобрался, фильтрую потом прогоняя результат через цикл.
UPD: подскажите как отфильтровать только текущие активные события? смотрел в сторону lastchange, но как тогда достать именно текущие активные события, которые ещё не решены? как я понял в списке событий хранится и проблемный итем и он же, но уже решённый с более поздним временем решения.
$tr = ZabbixAPI::fetch_array('trigger','get', array('only_problems'=>1, 'output'=>'extend')) or die('error: '.print_r(ZabbixAPI::getLastError(),true));
print_r($tr);
1. Вы не указали версию забикса.
2. Добавьте параметр {'filtr': {'value': 1}}, это фильтрует тригера на сервере
2.1 Если верхнее не сработает то: {'only_problems': 1}
3. Что-то не понял с событиями (events?)..
Спасибо, буду пробовать с фильтром.
Версия Zabbix - 1.8.2.
UPD:
ZabbixAPI::fetch_array('trigger','get', array('only_problems'=>1, 'output'=>'extend'))
Добился желаемого результата, спасибо.
Однако, всё же некоторе нюансы мне всё равно не понятны. В данный момент сделано так:
//$tr = ZabbixAPI::fetch_array('trigger','get', array('only_problems'=>1, 'output'=>'extend')) or die('error: '.print_r(ZabbixAPI::getLastError(),true));
$tr = ZabbixAPI::fetch_array('trigger','get', array('filtr'=>1, 'output'=>'extend')) or die('error: '.print_r(ZabbixAPI::getLastError(),true));
//print_r($tr);
$n=0;
foreach ($tr as $v) {
if (($v['status']!=0) and ($v['lastchange']>mktime(0,0,0,7,15,2010))and($v['lastchange']<mktime(23,59,59,7,15,2010))) {
echo '<b>triggerid</b> '.$v['triggerid'].', <b>status</b> '.$v['status'].', <b>value</b> '.$v['value'].', <b>priority</b> '.$v['priority'].', <b>date</b> '.date('d.m.Y H:i:s', $v['lastchange']).'<br>';
echo '<b>expression</b> '.$v['expression'].', <b>description</b> '.$v['description'].', <b>error</b> '.$v['error'].'<br><br>';
$n++;
}
}
echo "Count: ".$n;
вот так выглядит в tr_status.php
http://s004.radikal.ru/i208/1007/7e/4395cf9cf701.png
а это результат работы моего скрипта
http://s46.radikal.ru/i112/1007/5c/caf28f003f49.png
если для получения $tr использую первую строку, а вторую комментирую, то у меня результат по нолям.