PHP前端页面二次发或优化
7 篇帖子 分页: 1 / 1
帖子mxj333 » 2014年 4月 15日 11:29 星期二
在项目开发时,需要对报警信息页面做二次开发以便适应于在大屏幕上展示更加清晰的效果。

先来张效果图看看吧(登录后可见):

QQ--20140415172727.jpg



如果分步实现的话,其实也很简单。在这我就不说了。下面我要分享的是用一条SQL语句把这个效果查询出来:


重新修改后,可以直接在官方的版本上运行
代码: 全选

SELECT
   TIMESTAMPDIFF(
      SECOND,
      from_unixtime(`triggers`.lastchange),
      CURRENT_TIMESTAMP ()
   ) AS second_diff,
   `triggers`.triggerid AS tid,
   `triggers`.description,
   `triggers`.`status`,
   `triggers`.priority,
   `triggers`.lastchange,
   from_unixtime(`triggers`.lastchange) AS lasttime,
   from_unixtime(`items`.lastclock) AS changetime,
   `items`.units,
   `items`.hostid,
   `hosts`.`host`,
--    `hosts`.n_location,
   `hosts`.host,
--    `hosts`.n_url,
   `triggers`.expression,
   items.lastvalue,
   FROM_UNIXTIME(`events`.clock) AS clock,
   `events`.objectid,
   `events`.eventid,
   MAX(`events`.eventid) AS eid,
   `events`.acknowledged,

IF (
   (
      SELECT
         acknowledged
      FROM
         `events`
      WHERE
         objectid = tid
      ORDER BY
         eventid DESC
      LIMIT 1
   ) = 0,
   'N',
   'Y'
) AS n_acknowledged
FROM
   `triggers`
INNER JOIN functions ON `triggers`.triggerid = functions.triggerid
INNER JOIN items ON functions.itemid = items.itemid
INNER JOIN `hosts` ON items.hostid = `hosts`.hostid
LEFT JOIN `events` ON `events`.objectid = `triggers`.triggerid
WHERE
   `triggers`.`value` = 1
AND `triggers`.priority != 1
AND `hosts`. STATUS = 0
AND `events`.`object` = 0
AND `events`.`value` = 1
GROUP BY
   functions.triggerid
ORDER BY
   lasttime,
   clock DESC

登录后可见。
zabbix中文论坛:http://www.zabbix.net.cn 或者 www.zabbix.org.cn
帖子weiwei8180 » 2014年 4月 15日 17:09 星期二
:shock: 这个SQL语句太牛了。
帖子jianci » 2014年 5月 9日 16:08 星期五
实在是V5霸气,感谢分享,想想看如何来利用这句实现.
帖子young.liu » 2014年 5月 12日 15:58 星期一
执行有错误,ERROR 1054 (42S22): Unknown column 'hosts.n_location' in 'field list'
ERROR 1054 (42S22): Unknown column 'items.lastclock' in 'field list'
我用的是2.2.2版本的
帖子oulin_hl » 2014年 5月 13日 09:06 星期二
young.liu 写道:执行有错误,ERROR 1054 (42S22): Unknown column 'hosts.n_location' in 'field list'
ERROR 1054 (42S22): Unknown column 'items.lastclock' in 'field list'
我用的是2.2.2版本的



因为对前端页面做过二次开发,所以后端数据库结构也发生了一些变化
代码: 全选
ZABBIX中文论坛
欢迎热爱zabbix的网友们,在此我们可以一起探讨、交流、沟通zabbix的所有操作与问题!
帖子mxj333 » 2014年 5月 14日 23:09 星期三
young.liu 写道:执行有错误,ERROR 1054 (42S22): Unknown column 'hosts.n_location' in 'field list'
ERROR 1054 (42S22): Unknown column 'items.lastclock' in 'field list'
我用的是2.2.2版本的



以下是2.2.X版本的SQL语句,你可以根据实际情况对显示的字段进行修改:

代码: 全选


    SELECT
       TIMESTAMPDIFF(
          SECOND,
          from_unixtime(`triggers`.lastchange),
          CURRENT_TIMESTAMP ()
       ) AS second_diff,
       `triggers`.triggerid AS tid,
       `triggers`.description,
       `triggers`.`status`,
       `triggers`.priority,
       `triggers`.lastchange,
       from_unixtime(`triggers`.lastchange) AS lasttime,
       from_unixtime(Item.lastlogsize) AS changetime,
       `Item`.units,
       `Item`.hostid,
       `hosts`.`host`,
       `hosts`.name,
       `triggers`.expression,
       Item.delta,
       FROM_UNIXTIME(`events`.clock) AS clock,
       `events`.objectid,
       `events`.eventid,
       MAX(`events`.eventid) AS eid,
       `events`.acknowledged,

    IF (
       (
          SELECT
             acknowledged
          FROM
             `events`
          WHERE
             objectid = tid
          ORDER BY
             eventid DESC
          LIMIT 1
       ) = 0,
       'N',
       'Y'
    ) AS n_acknowledged
    FROM
       `triggers`
    INNER JOIN functions ON `triggers`.triggerid = functions.triggerid
    INNER JOIN items  Item ON functions.itemid = Item.itemid
    INNER JOIN `hosts` ON Item.hostid = `hosts`.hostid
    LEFT JOIN `events` ON `events`.objectid = `triggers`.triggerid
    WHERE
       `triggers`.`value` = 1
    AND `triggers`.priority != 1
    AND `hosts`. STATUS = 0
    AND `events`.`object` = 0
    AND `events`.`value` = 1
    GROUP BY
       functions.triggerid
    ORDER BY
       lasttime,
       clock DESC

zabbix中文论坛:http://www.zabbix.net.cn 或者 www.zabbix.org.cn
帖子DavidLin » 2015年 10月 19日 16:55 星期一
感谢楼主分享,这 SQL 在集群中机器数目多的时候要跑很久,但是对于二次开发来说有非常重要的参考意义,谢楼主。
7 篇帖子 分页: 1 / 1

登录

在线用户

正在浏览此版面的用户:没有注册用户 和 7 位游客