Ad Widget

Collapse

Выставить триггер только на растущий график

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Griboed0ff
    Senior Member
    • Sep 2022
    • 153

    #1

    Выставить триггер только на растущий график

    Коллеги, приветствую!
    Zabbix 4.2.8, обновить версию не имею возможности, поэтому нужно работать с тем, что есть.
    Появилась нужда выставить триггер на растущий график элемента данных. Сам эд это некая очередь на шине - оракловая база, мониторю потоки данных. Выглядит это примерно так, запрос в базу на количество сообщений и время первого сообщения в очереди. Изначально я выставил просто триггер, который срабатывал, если количество выше чем 5 и время первого сообщения в очереди старше 10 минут. Что должно было говорить мне о том, что очередь зависла. Но бывают ситуации когда очередь накопилась и разбирается, но медленно, что значит все ок.​ Как можно выставить триггер только на растущий график? То есть график должен идти только вверх без отступлений вниз. Ниже пример графиков, когда триггер сработал, но как видно, что есть отступы вниз, а это значит, что все ок. Click image for larger version  Name:	234.png Views:	0 Size:	39.7 KB ID:	467298Click image for larger version  Name:	123.png Views:	0 Size:	34.2 KB ID:	467297
    Last edited by Griboed0ff; 17-07-2023, 12:13.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Посмотрите на описание триггерных функций changecount(), monoinc() и monodec() (ссылка).
    Например, при помощи функции monoinc() можно легко создать условие "значение параметра постоянно растёт (или, как минимум, не уменьшается) в течение заданного времени", а при помощи changecount()​ можно задать менее строгое условие (например, из последних 50 значений не больше двух было меньше предыдущих).

    Comment

    • Griboed0ff
      Senior Member
      • Sep 2022
      • 153

      #3
      Originally posted by Kos
      Посмотрите на описание триггерных функций changecount(), monoinc() и monodec() (ссылка).
      Извиняюсь, забыл уточнить, что версия Zabbix 4.2.8 и таких триггерных функций просто еще нет. Обновиться до 6 версии не планируется.​

      Comment

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

        #4
        Originally posted by Griboed0ff
        Извиняюсь, забыл уточнить, что версия Zabbix 4.2.8 и таких триггерных функций просто еще нет. Обновиться до 6 версии не планируется.​
        С этого и надо было начинать
        Тогда ответ очевиден: задуматься об обновлении
        Помимо того, что версия 4.2.x уже давно не поддерживается (с осени 2019) и, соответственно, не содержит никаких исправлений с тех пор, так в новых версиях есть множество улучшений - упомянутые функции лишь малая часть этих улучшений.

        Comment

        • Semiadmin
          Senior Member
          • Oct 2014
          • 1625

          #5
          Сделать зависимый айтем с simple change в препроцессинге. Для него сделать триггер с count, считающий за период ненулевые значения (аналог monoinc strict) или любые значения (аналог monoinc weak) и сравнивающий полученное число с ожидаемым исходя из интервала обновления количеством значений за период
          P.S. А лучше сравнивать даже не с ожидаемым количеством, а с количеством значений мастер-айтема, добавив при этом проверку на свежесть данных
          Last edited by Semiadmin; 17-07-2023, 12:31.

          Comment

          • Griboed0ff
            Senior Member
            • Sep 2022
            • 153

            #6
            Originally posted by Kos
            Тогда ответ очевиден: задуматься об обновлении
            К сожалению эта версия досталась мне по наследию от прошлых админов, там очень много кастомных решений, вплоть до пересборки стоковой версии с последующей компиляией пакета и большой кучи скриптов на разных языках. Ну и в как водится в лучших традициях, все это без документации. Как только я попытаюсь обновить данный экземпляр, сразу отвалится куча мониторинга. Так я с продом поступить не могу. Поэтому пока строю новую систему мониторинга в нормальной версии, приходится поддерживать старую.


            Comment


            • Kos
              Kos commented
              Editing a comment
              Понятно, сочувствую. Тогда остаётся вариант, предложенный коллегой Semiadmin - он должен быть вполне рабочим (и зависимые элементы данных, и препроцессинг в версии 4.2 уже были). Если что-то пойдёт не так - можно вместо зависимого элемента данных сделать вычисляемый, сохраняя ту же логику.
          • Semiadmin
            Senior Member
            • Oct 2014
            • 1625

            #7
            Сорри, перемудрил, проверка на свежесть данных тут может навредить, помешав закрытию триггера, когда очередь пойдет вниз. Так что, наверно, лучше сравнивать с ожидаемым числом.

            Comment

            • Griboed0ff
              Senior Member
              • Sep 2022
              • 153

              #8
              Originally posted by Semiadmin
              Так что, наверно, лучше сравнивать с ожидаемым числом.
              Ожидаемого числа нет, собираемые эд рождаются из lld. На шине тысячи очередей и становятся на мониторинг, если только там появились сообщения, снимаются с мониторинга когда час нет сообщений. Поэтому и сижу размышляю, как сделать универсальный прототип триггера, который подошел под все очереди.​

              Comment

              • Griboed0ff
                Senior Member
                • Sep 2022
                • 153

                #9
                Пока из идей использовать старые условия плюс forecast(). По идее когда график растет, то и прогноз должен быть на рост. Если не будет совпадать с прогнозом, а это должны быть моменты когда график идет вниз, то и триггер не должен срабатывать. Эту функцию еще не использовал, сижу вникаю как описать аппроксимацию, пока не очевидно.

                Comment

                • Alex_UUU
                  Senior Member
                  • Dec 2018
                  • 541

                  #10
                  Рост смотрится за определенный промежуток?
                  Например опрос раз в минуту, алармить надо, если проблема длится более 10 минут
                  Сравниваем мин за последнее время со значением 10 минут назад.
                  ЭД.min(#10)-ЭД.last(#10)=0
                  and
                  ЭД.last(#10)<ЭД.last(#1)

                  первая строка вычленяет, если график или растет или на месте
                  а вторая - что растет.

                  Comment


                  • Griboed0ff
                    Griboed0ff commented
                    Editing a comment
                    Попробовал выставить по совету, жду когда случится проблема.
                Working...