Ad Widget

Collapse

Тригеры и time_shift

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Melanxolik
    Senior Member
    • Nov 2009
    • 174

    #1

    Тригеры и time_shift

    Уже много раз замечаю, или не правильно делаю, есть тригер вида:
    {Linux.IOSTAT:iostat.metric[{#HARDDISK},util].min(4m)}>80
    но проблема в том что min, max, avg (4m) >80 не отрабатывается, чуть только значение превышает этот порог, сразу идет срабатывание, а мне все что требуется чтобы оно срабатывало если 4 минуты подрят последнее значение более 80 едениц.
    И это касается не только этого действия, многих тригеров, такое чувство что забикс не может брать последние значения за T времени, более 30секунд.
  • ableev
    Senior Member
    Zabbix Certified Specialist
    • Oct 2012
    • 276

    #2
    В этом случае вам поможет не привязка ко времени, а к количеству значений.
    Если у вас каждую минуту значения снимаются, делайте
    min(#4)>80

    Если каждые 30 секунд,
    min(#8)>80

    В таком ключе. Да и вообще, привязка ко времени не всегда хороша.

    Comment

    • Melanxolik
      Senior Member
      • Nov 2009
      • 174

      #3
      да, действительно, вы похоже правы, надо будет сравнить скорость выполнения по количеству и по времени, думаю по количеству будет быстрее работать.

      Comment

      • Jimson
        Senior Member
        • Jan 2008
        • 1327

        #4
        Если предположить, что указанный вами триггер действительно работает не правильно, то проблема скорее всего в "4m", указывайте диапазон в секундах - min(240) - и не морочьте себе голову.

        Comment

        • Melanxolik
          Senior Member
          • Nov 2009
          • 174

          #5
          Jimson, это было в начале, потом перешел на задние промежутка через m, толку ноль.
          Вот пример сейчас:
          Template_PingOnly:icmppingsec[{HOST.NAME},5,60,,,].max(#8)}>70
          График приклеплен.
          Данные снимаются каждые 40секунд, 40x8, не раньше чем через... в общем должно было быть. Теперь посмотрим срабатывание тригера:

          14.52 было срабатывания тригера, дальше уже в течении 9 минут он висит как проблема, в 15.01 он снялся с состояния проблема.
          Как по мне это не нормально, по графику было нормально, а он почему-то ждал пока наверное прийдут 8 значений меньше 70 и тогда снимает его с этого состояния.
          Но в состояние проблема тригер попадает по первому срабатыванию, тут явно что-то в системе не так.
          Attached Files

          Comment

          • Jimson
            Senior Member
            • Jan 2008
            • 1327

            #6
            "даденька, у мене под полом подземный стук" (c)

            У тебя в 14:52 пришло значение >70, условие "если максимальное из последних 8ми значений >70" срабатывает, что не так?
            Далее, значения снимаются каждые 40 секунд, следовательно следующие как минимум 320 секунд условие триггера будет истиным вне зависимости от того какие значения, так как в условии триггера используется максимальное из последних 8ми значений.
            Теперь смотрим, в течении этих 320 секунд, а точнее в 14:56 у вас приходит очередное значение >70, что, соответсвенно "продлевает" триггер как минимум до 15:01.

            Ну и чего тут "в системе не так"? Что написали в условии триггера, то и получили.

            P.S. можно предположить что вам пригодится гистерезис, так как сильно похоже что нужны разные условие срабатывания и снятия триггера, но в любом случае булеву логику и понимание функций min/max/avg стоит подтянуть.

            Comment

            • Melanxolik
              Senior Member
              • Nov 2009
              • 174

              #7
              да, спасибо, сделал правку, изменение на max были эксперементы.
              буду наблюдать как дальше будет.

              Comment

              • Melanxolik
                Senior Member
                • Nov 2009
                • 174

                #8
                Итак, продожение:
                тригер:
                Имя: 03 Harddisk busy {#HARDDISK}-{HOSTNAME} bussy:{ITEM.VALUE}%
                Выражение:
                {FreeBSD_HDD_DISCOVER:device.hdd.bussy[{#HARDDISK}].last(#15)}>98
                интервал снятия, 90 секунд.


                странно:
                11 Ноя 2013 17:22:35 v2.om.ua 03 Harddisk busy ada5-v2.om.ua bussy:4% СОСТОЯНИЕ ПРОБЛЕМА
                потом востанавливается
                11 Ноя 2013 17:24:05 v2.om.ua 03 Harddisk busy ada5-v2.om.ua bussy:9% СОСТОЯНИЕ OK

                Считаем:
                текущее время, 17.20 к примеру, ( 90секунд интервала X 15 значений ) / 60секунд, получаем 22 минуты.
                В итоге 17.20 - 22минуты, получаем 17.00 когда была пика на графике. Теперь вопрос, с какого перепугу тригер перешел в состояние проблемы через 20 минут после возникновения проблемы, и если все значения за это время были меньше 98 процентов?


                График прикрепля, в обще не понятно с какой такой радости сработал тригер и перешол в состояние проблемы

                Мне все же кажется два варианта, или у меня что-то криво. или в забиксе криво.
                Attached Files

                Comment

                • Jimson
                  Senior Member
                  • Jan 2008
                  • 1327

                  #9
                  Да вы издеваетесь походу.

                  Code:
                  Последнее (самое новое) значение. Параметр:
                  сек - игнорируется
                  #num - Nое наиболее новое значение
                  Примите во внимание, что #num, как можно ожидать, работает здесь отлично от многих других функций.
                  Например,
                  last(0) всегда равно last(#1)
                  last(#3) - третье наиболее новое значение (не три последних значений)
                  last(#15) вернул вам ваши "100" спустя 14 интервалов.

                  Прочтите документацию!

                  Comment

                  • Melanxolik
                    Senior Member
                    • Nov 2009
                    • 174

                    #10
                    Да, действительно, недочитал, получается last это не грубо говоря текущее, и для него # не работает, так как работает для min и max, а вернее будет правильно использовать avg(#) в моем случае, это будет среднее для многих данных.
                    Last edited by Melanxolik; 11-11-2013, 19:23.

                    Comment

                    Working...