我想创建一个zabbix警报,用于在过去2小时内未发送报告的情况下向用户发送电子邮件

时间:2019-01-21 12:02:49

标签: sql db2 zabbix

我们在unix系统中设置了zabbix。报告连接到设置了zabbix警报的DB2数据库。现在,我想编写一个查询,当在输出中未看到任何记录时将调用此警报。

这意味着查询将检查过去2小时内是否有任何运行并返回这些记录。如果没有任何输出,它将调用警报。

select from_tz(to_timestamp(substr(lastmodifytime,1,19), 'YYYY MM DD HH24 MI 
SS'),'GMT') at time zone 'US/Pacific',
objectid, parentid, typeid, ownerID, LastModifyTime
from BODEV.CMS_INFOOBJECTS7 c
where to_date(substr(lastmodifytime,1,19), 'YYYY MM DD HH24 MI SS') > 
sysdate - 2/60/60/24
order by lastmodifytime desc;

1 个答案:

答案 0 :(得分:1)

如果小数秒的前导零(即2019 01 22 13 01 18 002而不是2019 01 22 13 01 18 2),则... where lastmodifytime > to_char(current timestamp - 2 hour, 'YYYY MM DD HH24 MI FF3')

否则,将行与substr一起使用。

select *
from table(values
  to_char(current timestamp - 3 hour, 'YYYY MM DD HH24 MI FF3')
--, to_char(current timestamp - 1 hour, 'YYYY MM DD HH24 MI FF3')
) c (lastmodifytime)
where 
lastmodifytime > to_char(current timestamp - 2 hour, 'YYYY MM DD HH24 MI FF3')
--substr(lastmodifytime, 1, 19) > to_char(current timestamp - 2 hour, 'YYYY MM DD HH24 MI')
fetch first 1 row only
optimize for 1 row
;

取消注释第二行,以得到表明过去2小时内发生了某些事情的结果。