Ad Widget

Collapse

Строить графики только по "большим" эл. данных

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • who_care
    Member
    • Sep 2017
    • 30

    #1

    Строить графики только по "большим" эл. данных

    Приветствую знатоки!
    Очень интересная мысль меня посетила. Допустим, я написал скрипт для database tables discovery (Да, я в курсе что zabbix это из коробки умеет, но так уж сложилось...) через trapper. Суть проста: Делаем выборку по двум полям в БД, получаем овер 600 значений, отправляем сначала {"data":[{"{#TABLE}":"table_name"}, {...}]} и потом этим же скриптом следующей итерацией цикла - значение по каждому ключу. И собсно у меня 2 вопроса.
    1. Возможно ли как-то средствами zabbix'а, показывать 10 эл. данных с наибольшими значениями? Будь то компл. экран, или общий какой-то график, или просто сортировка на какой-то станице - не важно. Суть - отсортировать по наибольшему значению.
    2. Значит этот скрипт у меня, формирует файлик где овер 600 строк - ключи со значениями и discovery ключ с гигантской строкой {"data":[{"{#TABLE}":"table_name"}, {...}]} , и потом я отсылаю его с помощью zabbix_sender по крону каждую минуту. Собсно вопрос: А не поплохеет ли zabbix'у от того, что ему discovery на 600 элементов каждую минуту прилетает?)))

    Zabbix Server 3.4
    Last edited by who_care; 19-04-2018, 09:27.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3406

    #2
    Собсно вопрос: А не поплохеет ли zabbix'у от того, что ему discovery на 600 элементов каждую минуту прилетает?)))
    В теории - нет. На практике:
    1) может и поплохеть, в зависимости от версии (см., например, тут, а потом ещё и тут, причём исправление, по сути, сводится к простому игнорированию одной из операций дискаверинга);
    2) как правило, в столь частом дискаверинге просто нет смысла (у вас ведь список таблиц в базе не меняется каждую минуту?).

    По первому вопросу (со списком наибольших значений) ничего не скажу.

    Comment


    • who_care
      who_care commented
      Editing a comment
      Пардон, не указал версию zabbix. Он у меня 3.4
      Да, конечно же нет абсолютно никакого смысла в таком частом дискавери. Просто мне было лень писать два скрипта (один - discovery, второй - заполнение элементов по ключам) либо добавлять отдельно функции discovery и send поэтому я не мудрствуя лукаво, Одним скриптом в одном цикле делаю и то и другое. Собсно, вопрос-то я и задал для понимания того, нужно ли мне это переделывать или просто забить.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3406

    #3
    Да, конечно же нет абсолютно никакого смысла в таком частом дискавери. Просто мне было лень писать два скрипта [...]
    Ну, если Вы точно знаете, что сам скрипт запускается раз в минуту, но при этом дискаверинг делать хотите раз в час, то это же элементарно обходится проверкой на текущее время. Например, если хотим, чтобы дискаверинг отрабатывал каждый час в, скажем, 07 минут, то можем написать конструкцию типа такого:
    Code:
    if [ `date '+%M'` = "07" ]
    then
       #тут код для дискаверинга, включая отсылку сформированного JSON-а с помощью вызова zabbix_sender
    fi

    Comment


    • who_care
      who_care commented
      Editing a comment
      Хыы, а ведь Вы правы, вариант имеет место быть. Как Вы оцениваете костыльность такого решения по шкале от 1 до 10, где единица - эталонное решение энтерпрайз уровня, а десять - костылина каких свет не видовал?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3406

    #4
    Как Вы оцениваете костыльность такого решения
    Да нормальный костыль, у меня примерно так и работает :-)
    Во всяком случае, куда лучше, чем дискаверить каждую минуту.

    Только нужно иметь в виду, что сам дискаверинг (на Zabbix-сервере) занимает какое-то время (около полминуты). Т.е. до того как данные для вновь появившихся объектов (в Вашем случае - таблиц базы данных) реально будут приниматься Zabbix-сервером, должен пройти очередной цикл дискавернга плюс ещё примерно одна минута. До этого времени отсылаемые zabbix_sender-ом данные будут уходить "в никуда". Но обычно это не является критичным.

    Comment

    • Semiadmin
      Senior Member
      • Oct 2014
      • 1625

      #5
      Originally posted by who_care
      1. Возможно ли как-то средствами zabbix'а, показывать 10 эл. данных с наибольшими значениями? Будь то компл. экран, или общий какой-то график, или просто сортировка на какой-то станице - не важно. Суть - отсортировать по наибольшему значению.
      Средствами zabbix'а - вряд ли, в Графане - без проблем. Хоть сортировка, хоть top 10.

      Comment

      Working...