Ad Widget

Collapse

Нужно написать отчет для забикс

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • pit24rus
    Junior Member
    • Mar 2016
    • 2

    #1

    Нужно написать отчет для забикс

    Всем привет.

    Я тут новенький, если что не так делаю, не туда пишу - говорите.

    С забиксом знаком недавно, пока разбираюсь сам, но сроки уже поджимают.
    От начальства поступила задача - разработать отчет для заббикса.
    типа:
    Наименование оборудования
    Место установки
    Загрузка ЦП, %
    Номинальная температура
    максимальная температура за период и т.д.
    БД на postgresql.

    Кто может взяться за такое? Срок и сколько $ ?
  • aib
    Senior Member
    • Jan 2014
    • 1615

    #2
    Ну вот сразу и не ответить, не зная вашей ситуации.

    Вариант А: Вы - программист. И знаете, как получать данные из БД.
    Тогда просто пишете запросы к базе Zabbix, выбираете нужные данные, формируете табличку и печатаете. Можно по вкусу добавить экспорт в Excel, раскраску критических значений, автоматическое формирование и отсылку отчетов почтой и т.п.

    Вариант Б: Вы - не программист. Вы не знаете, что такое БД. Вы не имеете никакого опыта написания программ/скриптов/т.п. Тогда прийдется искать стороннего программиста, объяснять ему Вариант А и верить, что у него все получится легко и просто.

    PS А вообще - у вас в БД эти данные уже есть? Особенно меня смущает "Место установки". Обычно никто не заморачивается хранить такие данные в текущей базе.
    Sincerely yours,
    Aleksey

    Comment

    • sadman
      Senior Member
      • Dec 2010
      • 1611

      #3
      А меня смутила номинальная температура.

      Такое впечатление, что предлагается "нарисовать 7 красных перпендикулярных линий, из которых две зеленые и еще две прозрачные" (С)

      ...или же придется из ста тыщ различных баз (включая ad) собирать репорт.

      Comment

      • pit24rus
        Junior Member
        • Mar 2016
        • 2

        #4
        Originally posted by aib
        Ну вот сразу и не ответить, не зная вашей ситуации.

        Вариант А: Вы - программист. И знаете, как получать данные из БД.
        Тогда просто пишете запросы к базе Zabbix, выбираете нужные данные, формируете табличку и печатаете. Можно по вкусу добавить экспорт в Excel, раскраску критических значений, автоматическое формирование и отсылку отчетов почтой и т.п.

        Вариант Б: Вы - не программист. Вы не знаете, что такое БД. Вы не имеете никакого опыта написания программ/скриптов/т.п. Тогда прийдется искать стороннего программиста, объяснять ему Вариант А и верить, что у него все получится легко и просто.

        PS А вообще - у вас в БД эти данные уже есть? Особенно меня смущает "Место установки". Обычно никто не заморачивается хранить такие данные в текущей базе.
        Спасибо за ответ.

        Ну допустим я "вариант А" с натяжкой. Установил Next Reports сервер и дизайнер. Данные есть. Место установки буду брать из таблицы groups.
        Под номинальной я понимаю это постоянная величина.
        Набросал запрос пока для загрузки CPU.
        SELECT
        h2.host as Naim_Oborud,
        g1.name as Mesto_Ustan,
        i2.name as Items_name,
        i2.hostid,
        i2.itemid,
        avg(value) as cpu_sred,
        max(value) as cpu_мах
        FROM
        public.groups g1,
        public.hosts h2,
        public.hosts_groups h4,
        public.items i2,
        public.history
        WHERE
        g1.groupid = h4.groupid AND
        h4.hostid = h2.hostid AND
        h2.hostid = i2.hostid and
        i2.key_ in ('Cpu') and
        i2.itemid = history.itemid AND
        TIMESTAMP WITH TIME ZONE 'epoch' + clock * INTERVAL '1 second' >= date_trunc('second', now() - interval '10 minutes')
        and TIMESTAMP WITH TIME ZONE 'epoch' + clock * INTERVAL '1 second' < date_trunc('second', now() - interval '1 second')

        GROUP BY h2.host, g1.name, i2.itemid
        У меня вопрос - как сделать в одном запросе вывод значение history.value для нескольких itemid например:
        SELECT
        avg(value) as cpu_sred,
        max(value) as cpu_мах,
        avg(value) as T_sred,
        max(value) as T_мах,
        Вот схема таблиц из которых выбираю данные.

        Comment

        • ray
          Junior Member
          • Jan 2016
          • 11

          #5
          Originally posted by pit24rus
          Спасибо за ответ.

          Ну допустим я "вариант А" с натяжкой. Установил Next Reports сервер и дизайнер. Данные есть. Место установки буду брать из таблицы groups.
          Под номинальной я понимаю это постоянная величина.
          Набросал запрос пока для загрузки CPU.


          У меня вопрос - как сделать в одном запросе вывод значение history.value для нескольких itemid например:
          SELECT
          avg(value) as cpu_sred,
          max(value) as cpu_мах,
          avg(value) as T_sred,
          max(value) as T_мах,
          Вот схема таблиц из которых выбираю данные.

          В Вашем случае, после GRUP BY обычно пишут все поля, после слова SELECT и до какой-либо из агрегатных функций(avg,min,max)

          Comment

          Working...