Ad Widget

Collapse

Состояние триггеров с помощью php api

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Jim_Di
    Junior Member
    • Jul 2010
    • 3

    #1

    Состояние триггеров с помощью php api

    Доброго времени суток. С помощью php скрипта необходимо выгребать данные о состоянии триггеров, мне необходимо выгребать все триггеры (которые отображаются на странице /zabbix/tr_status.php) у которых статус != OK.

    в данный момент получи список триггеров
    PHP Code:
    $tr ZabbixAPI::fetch_array('trigger','get', array('output'=>'extend')) or die('error: '.print_r(ZabbixAPI::getLastError(),true));
    print_r($tr); 
    скрипт выдал достаточно большое количество результатов, хотя на странице состояние триггеров нет ни одного активного - подскажите, пожалуйста, как выгребать только активные триггеры с ошибками.
    Last edited by Jim_Di; 15-07-2010, 05:57.
  • Jim_Di
    Junior Member
    • Jul 2010
    • 3

    #2
    Разобрался, фильтрую потом прогоняя результат через цикл.

    UPD: подскажите как отфильтровать только текущие активные события? смотрел в сторону lastchange, но как тогда достать именно текущие активные события, которые ещё не решены? как я понял в списке событий хранится и проблемный итем и он же, но уже решённый с более поздним временем решения.
    Last edited by Jim_Di; 09-07-2010, 11:17.

    Comment

    • Aly
      ZABBIX developer
      • May 2007
      • 1126

      #3
      PHP Code:
      $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 | ex GUI developer

      Comment

      • Jim_Di
        Junior Member
        • Jul 2010
        • 3

        #4
        Спасибо, буду пробовать с фильтром.
        Версия Zabbix - 1.8.2.

        UPD:
        PHP Code:
        ZabbixAPI::fetch_array('trigger','get', array('only_problems'=>1'output'=>'extend')) 
        Добился желаемого результата, спасибо.

        Однако, всё же некоторе нюансы мне всё равно не понятны. В данный момент сделано так:
        PHP Code:
        //$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


        а это результат работы моего скрипта


        если для получения $tr использую первую строку, а вторую комментирую, то у меня результат по нолям.
        Last edited by Jim_Di; 15-07-2010, 07:43.

        Comment

        Working...