Я хочу создать zabbix оповещение для отправки электронной почты пользователям, если за последние 2 часа не было ни одного отчета - PullRequest
0 голосов
/ 21 января 2019

У нас есть настройка zabbix в нашей системе Unix. И отчет связан с базой данных DB2, где настроено предупреждение zabbix. Теперь я хочу написать запрос, который будет вызывать это предупреждение, когда в выходных данных не будет видно никаких записей.

Это означает, что запрос проверит, выполнялось ли что-либо за последние 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 голосов
/ 22 января 2019

Если ваши дробные секунды имеют ведущие нули (т. Е. 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-ю строку, чтобы получить результат, указывающий, что что-то работало за последние 2 часа.

...