Ad Widget

Collapse

Trigger на Oracle (>24 часов)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • drylio1978
    Junior Member
    • May 2020
    • 4

    #1

    Trigger на Oracle (>24 часов)


    Простой вопрос, кто это делал. как создать триггер чтобы он проверял полученное время (формат YYYY.MM.DD HH24:MI:SS), и если от этой даты прошло более 24 часов, он сгенерировал сообщение о проблеме.
  • teddy
    Senior Member
    • Dec 2017
    • 234

    #2
    получать надо дату откуда? если из запроса то только написанием скрипта на агенте заббикса на хосте с ораклом.

    в конфиг на агенте добавить:
    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 то алерт.
    это скелет, по хорошему надо еще проверок добавить тот ли Оракл, запущен ли вообще но это уже мелочи

    Comment

    • drylio1978
      Junior Member
      • May 2020
      • 4

      #3

      Извините если я не так выразился.
      Я уже создал Items в zabbix и получаю дату, когда было сделано последнее резервное копирование ( например 2020.05.24 21:00:00).
      Мне просто нужен триггер, если прошло более 24 часов от последней даты которую я получаю ( например тот же 2020.05.24 21:00:00) , он сгенерировал сообщение о проблеме.
      Я просто не знаю, как сделать этот триггер.

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        Originally posted by drylio1978
        Извините если я не так выразился.
        Я уже создал 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

        • drylio1978
          Junior Member
          • May 2020
          • 4

          #5

          Спасибо. Я попробую ваш вариант. Затем напишу как получилось.

          Comment

          • drylio1978
            Junior Member
            • May 2020
            • 4

            #6
            Спасибо за совет.
            Сделал по первому варианту - посчитал разницу между временем backup' а и текущим временем секундах.
            После этого сделал триггер ....last()}>88000‬, тогда алерт.

            Comment

            Working...