Ad Widget

Collapse

Зависимость температуры от количества прошедших дней , возможно?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Diamystxs
    Junior Member
    • Feb 2020
    • 14

    #1

    Зависимость температуры от количества прошедших дней , возможно?

    Добрый день всем!
    Подскажите, есть ли возможность сделать зависимость одного от другого, а точнее температуры от количества дней?
    Приведу пример, в моем случае я работаю на птицефабрике сис админом, в первый день после посадки птицы в птичники максимально допустимая температура их обитания должна не превышать, допустим, 37 градусов, а далее идет по убыванию, в итоге к 20-ому дню максимально допустимая температура должна не превышать 30 градусов и на 43 день уже 23, в целом шкала состоит примерно из 10-15 понижений температуры в зависимости от того, какой по счету день уже наступил.
    Можно ли в Zabbix сделать такую зависимость? чтобы сам автоматом считал количество дней прошедших с начала посадки и была зависимость максимальной температуры от количества дней в птичнике, т.е. условия будут меняться получается.
    Может есть варианту с использованием скриптов в связке с Zabbix. По сути, вычислить количество дней командой в bash не представляется труда, но если варианты в самом Zabbix, то зачем такие костыли.
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Насколько я понял задачу, есть некий айтем, получающий температуру, и триггер для него, порог у которого должен меняться в зависимости от количества прошедших дней с заданного момента, причем скачкообразно и нелинейно. Начиная с версии 4.2 такое можно сделать без внешних скриптов. Дату начала процесса я бы указывал вручную в user macro. Сделал бы айтем, который бы запускался по Scheduling Custom interval в начале каждого дня. У этого айтема - препроцессинг на JS. Средствами JS берем текущее время, вычитаем время начала процесса, хранящееся в пользовательском макросе (удобно преобразовать и то, и другое в uinxtime), и в зависимости от разности получаем требуемый порог температуры (if-else или switch-case). Потом сравниваем в триггере текущую температуру с последним значением этого айтема.

    Comment

    • Diamystxs
      Junior Member
      • Feb 2020
      • 14

      #3
      Огромное спасибо за ответ! Буду разбираться в Вашем варианте.

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        Есть и другие способы, в том числе и для версий до 4.2, но этот мне кажется самым удобным.

        Comment

        • Hamardaban
          Senior Member
          Zabbix Certified SpecialistZabbix Certified Professional
          • May 2019
          • 2713

          #5
          Originally posted by Semiadmin
          Есть и другие способы
          А можно намекнуть какие? Нестандартные решения приятны для мозха :-)

          Comment

          • Semiadmin
            Senior Member
            • Oct 2014
            • 1625

            #6
            Originally posted by Hamardaban

            А можно намекнуть какие? Нестандартные решения приятны для мозха :-)
            Например, заменить айтем с js-препроцессингом на вычисляемый, опять же, в начале каждого дня. Время начала процесса в unixtime пишем в макрос {$START}, а в формулу вычисляемого что-то вроде
            (item.now()<=({$START}+86400))*37 + ((item.now()>({$START}+86400))*(item.now()<=({$STA RT}+86400*2))*36 + ((item.now()>({$START}+86400*2))*(item.now()<=({$S TART}+86400*3))*35 + ...
            где item - произвольный айтем, например, тот же айтем с температурой.
            При желании можно и вообще не создавать айтем для хранения переменного порога, а просто запихнуть всю эту монструозную конструкцию в триггер, только все это будет пересчитываться при каждом получении температуры, да еще и каждые 30с дополнительно...

            Comment

            • wins
              Senior Member
              • Sep 2014
              • 307

              #7
              Если есть контроллер нагревания курятника - то можно брать целевую температуру оттуда, заносить в айтем.
              Я так с контроллера кондиционеров снимаю целевую и фактическую температуры.

              Comment

              • Diamystxs
                Junior Member
                • Feb 2020
                • 14

                #8
                не туда написал

                Comment

                Working...