Ad Widget

Collapse

Как с помощью Sql запроса получить список со&a

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ava5
    Junior Member
    • Feb 2013
    • 2

    #1

    Как с помощью Sql запроса получить список со&a

    Как с помощью Sql запроса получить список событий и их длительность?
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    Никак, нет длительности. Событие (event) это по сути журнал в котором сохраняется факт изменения состояния тригера (там еще есть события дискаверинга, но не об этом речь как я понял).
    Длительность в списке в веб-интерфейсе считается на php при генерации страницы.

    Comment

    • dotneft
      Senior Member
      • Nov 2008
      • 699

      #3
      запрос будет очень тяжелым и если таблица эвентс более 1млн записей, то будет очень долгим...

      Comment

      • bga83
        Senior Member
        • Sep 2011
        • 268

        #4
        у меня крутится скрипт, отправляющий периодически отчеты. Вот кусок кода оттуда, извлекающий собыитя по определенному триггеру. При желании обработку на Php можно засунуть в sql

        Code:
                        $trids=$tr_row["triggerid"];
                        $sql =  ' SELECT e.clock, e.value, t.description, h.host '.
                                ' FROM events e, triggers t, hosts h, items i, functions f '.
                                ' WHERE t.triggerid=f.triggerid '.
                                        ' AND e.objectid=f.triggerid '.
                                        ' AND t.triggerid ='.$trids.
                                        ' AND e.clock > '.$start_time.
                                        ' AND f.itemid = i.itemid '.
                                        ' AND i.hostid = h.hostid '.
                                        ' AND e.value_changed = 1 '.
                                        ' ORDER by clock ';
        
                        $result = mysql_query($sql,$DB['DB']);
                        while($row = mysql_fetch_assoc($result)){
        //Print information;
                                if($row["value"]==1){
        // Begin problem
                                $host_name=$row["host"];
                                $trigger_name=$row["description"];
                                $start_problem=$row["clock"];
                                if($row = mysql_fetch_assoc($result)){
                                        $end_problem=$row["clock"];
                                }
                                else{
                                         $end_problem=time();
                                }
                                $duration_problem=$end_problem - $start_problem;
                                $report=$report."Узел:".$host_name." триггрер: ".str_replace("{HOSTNAME}",$host_name,$trigger_name)." время начала: ".date("F j, Y, H:i",$start_problem)." продолжительность: ".SecToTime($duration_problem).$EOL;
        
                                }
        
                        }

        Comment

        Working...