Ad Widget

Collapse

Получить из базы данных список аварий с устройствами (хостами)

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • alibek22
    Member
    • Mar 2022
    • 46

    #1

    Получить из базы данных список аварий с устройствами (хостами)

    Подскажите, как можно вытащить из базы данных информацию по авариям за заданный период?
    Не могу увязать problems с hosts.
    Пробовал так, но получилось не то:
    Code:
    select p.eventid
    , cast(to_timestamp(p.clock) AS time)
    , (p.r_clock - p.clock) / 60 as len
    , h.*
    from problem p
    join items i on (i.itemid = p.objectid)
    join hosts h on (h.hostid = i.hostid)
    where p.clock between 1648587600 and 1648623600
    and p.severity = 4
    Не подскажите, как соединять таблицы?
    У лучше ссылку на описание структуры таблиц в Zabbix 5.
  • Answer selected by alibek22 at 30-03-2022, 15:19.
    Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    Думаю, проще использовать API.
    Но если хочется запросами - подскажу: objectid проблемы равен не itemid, а triggerid из таблицы triggers. Там в столбце expression можно найти functionid (один или несколько), а по ним в таблице functions узнать itemid(s). Зная itemid, в таблице items узнаем hostid(s), а по нему(ним) - host(s) в таблице hosts.
    Все так сложно, поскольку в триггере могут участвовать айтемы нескольких хостов,

    Comment

    • Semiadmin
      Senior Member
      • Oct 2014
      • 1625

      #2
      Думаю, проще использовать API.
      Но если хочется запросами - подскажу: objectid проблемы равен не itemid, а triggerid из таблицы triggers. Там в столбце expression можно найти functionid (один или несколько), а по ним в таблице functions узнать itemid(s). Зная itemid, в таблице items узнаем hostid(s), а по нему(ним) - host(s) в таблице hosts.
      Все так сложно, поскольку в триггере могут участвовать айтемы нескольких хостов,

      Comment

      • alibek22
        Member
        • Mar 2022
        • 46

        #3
        Спасибо за наводку, думаю что дальше разберусь.
        А нет ли в сети подробного описания базы данных?
        Привык, что обычно в комментариях к столбцам подписано их назначение, а тут ничего нет.

        Comment

        • Semiadmin
          Senior Member
          • Oct 2014
          • 1625

          #4
          Еще одна подсказка; если добавить себя в группу Enabled debug mode, то появится кнопка Debug, нажатие на которую покажет используемые данной страницей запросы

          Comment

          • Alex_UUU
            Senior Member
            • Dec 2018
            • 541

            #5
            Originally posted by Semiadmin
            Еще одна подсказка; если добавить себя в группу Enabled debug mode, то появится кнопка Debug, нажатие на которую покажет используемые данной страницей запросы
            Не обязательно себя в эту группу добавлять можно в группе, в которой уже есть поставить галочку на дебаг.

            Вещь - хорошая, спасибо разработчикам.

            Comment

            • alibek22
              Member
              • Mar 2022
              • 46

              #6
              Что-то не могу понять.
              В меня в журнале проблем несколько десятков тысяч записей в истории.
              Но в таблице problem всего лишь 460 строк. И тех записей, которые я находил вчера, сегодня я уже не вижу.
              Хотя в таблице есть записи за вчерашнее число, но их гораздо меньше, чем было.
              Где искать все записи о проблемах?

              Если включить режим отладки, то я вижу SQL-запросы. Запрос, который судя по параметру limit, должен быть основным, обращается к таблице problem.

              P.S. У меня задействована надстройка timescaledb.

              Comment

              • alibek22
                Member
                • Mar 2022
                • 46

                #7
                Подскажите, что хранится в столбах ns, например problem.ns?
                Не соображу никак.

                Comment

                • Alex_UUU
                  Senior Member
                  • Dec 2018
                  • 541

                  #8
                  В доках написано, что наносекунды.
                  Имхо, бесполезная вещь :-)

                  Comment

                  • alibek22
                    Member
                    • Mar 2022
                    • 46

                    #9
                    Ни за что бы не догадался.
                    Да, наносекунды мне не нужны.

                    Comment

                    Working...