Простой вопрос, кто это делал. как создать триггер чтобы он проверял полученное время (формат YYYY.MM.DD HH24:MI:SS), и если от этой даты прошло более 24 часов, он сгенерировал сообщение о проблеме.
Ad Widget
Collapse
Trigger на Oracle (>24 часов)
Collapse
X
-
Trigger на Oracle (>24 часов)
Простой вопрос, кто это делал. как создать триггер чтобы он проверял полученное время (формат YYYY.MM.DD HH24:MI:SS), и если от этой даты прошло более 24 часов, он сгенерировал сообщение о проблеме.Tags: None -
получать надо дату откуда? если из запроса то только написанием скрипта на агенте заббикса на хосте с ораклом.
в конфиг на агенте добавить:
UserParameter=custom.oracheck[*],echo -e "\n"|sudo -u oracle -S /bin/bash /etc/zabbix/scripts/checkOracle.sh
/etc/zabbix/scripts/checkOracle.sh:
#!/bin/bash
#
. /home/oracle/.bash_profile
DIFTIME=`$ORACLE_HOME/bin/sqlplus -SILENT user/userpwd@tnsname << EOF
set head off
set pagesize 0
SELECT ROUND( (SYSDATE - MY_TIME)*24*60,0) as minutes FROM TABLENAME;
EOF`
echo $DIFTIME
#
тогда item настроенный на ключ oracheck получает разницу в минутах от текущего времени до того врмени что взято запросом из таблицы TABLENAME. ну и триггер если больше чем 24*60 то алерт.
это скелет, по хорошему надо еще проверок добавить тот ли Оракл, запущен ли вообще но это уже мелочи -
Извините если я не так выразился.
Я уже создал Items в zabbix и получаю дату, когда было сделано последнее резервное копирование ( например 2020.05.24 21:00:00).
Мне просто нужен триггер, если прошло более 24 часов от последней даты которую я получаю ( например тот же 2020.05.24 21:00:00) , он сгенерировал сообщение о проблеме.
Я просто не знаю, как сделать этот триггер.Comment
-
Я вижу тут два возможных варианта:Извините если я не так выразился.
Я уже создал Items в zabbix и получаю дату, когда было сделано последнее резервное копирование ( например 2020.05.24 21:00:00).
Мне просто нужен триггер, если прошло более 24 часов от последней даты которую я получаю ( например тот же 2020.05.24 21:00:00) , он сгенерировал сообщение о проблеме.
Я просто не знаю, как сделать этот триггер.
1) как описал выше коллега teddy , переформулировать SQL-запрос таким образом, чтобы возвращалось не время последнего бэкапа (в текстовом формате, который трудно с чем-то сравнить), а сразу разница между этим временем и текущим временем в каких-либо единицах (секундах, минутах, часах). Тогда легко будет сформулировать условие триггера.
2) возвращать всё же дату, но преобразованную в формат Unix time (количество секунд с 01.01.1970). Тогда это можно сравнивать с текущим временем Zabbix-сервера с помощью триггерной функции fuzzytime().Comment
-
-
Спасибо за совет.
Сделал по первому варианту - посчитал разницу между временем backup' а и текущим временем секундах.
После этого сделал триггер ....last()}>88000, тогда алерт.Comment
Comment