Ad Widget

Collapse

Триггер процесса в Linux

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • alekseyeng
    Member
    • Aug 2014
    • 54

    #1

    Триггер процесса в Linux

    Добрый день !
    простите за простой вопрос
    Имеется некий процесс в Линуксе. Как можно сделать чтоб зайбикс сервер проверял его 1 раз в день в определенное время ? к пример в 05:30 утра, и если такой процесс имеется то начинал пищать )
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    Originally posted by alekseyeng
    Добрый день !
    простите за простой вопрос
    Имеется некий процесс в Линуксе. Как можно сделать чтоб зайбикс сервер проверял его 1 раз в день в определенное время ? к пример в 05:30 утра, и если такой процесс имеется то начинал пищать )
    нет, нельзя.
    Но можно сделать что бы проверял каждую минуту, а пищал только с 5:30 до 5:40 например. Смотрите в сторону функции TIME https://www.zabbix.com/documentation...gers/functions и гистерезиса https://www.zabbix.com/documentation...B7%D0%B8%D1%81

    А еще есть Переменные интервалы https://www.zabbix.com/documentation...fig/items/item
    То есть можно собирать данные условно говоря "раз в неделю" (когда серверу вздумается), но в 5:30 до 5:40 каждый день собирать - раз в минуту.
    Last edited by yukra; 02-03-2015, 09:56.

    Comment

    • alekseyeng
      Member
      • Aug 2014
      • 54

      #3
      Originally posted by yukra
      нет, нельзя.
      Но можно сделать что бы проверял каждую минуту, а пищал только с 5:30 до 5:40 например. Смотрите в сторону функции TIME https://www.zabbix.com/documentation...gers/functions и гистерезиса https://www.zabbix.com/documentation...B7%D0%B8%D1%81
      Вот сделал пример, где TEST - наименование процесса, и далее, если в 05:30 до 05:35 имеется процесс TEST то триггер начинает пищать. () в другое время не проверяет этот процесс, только в указанный период.

      {zabbix: proc.num[TEST].last(0)}=1&{zabbix: proc.num[TEST].time(0)}>053000&{zabbix: proc.num[TEST].time(0)}<053500

      Поправьте пожалуйста, если что не так поправьте пожалуйста
      Last edited by alekseyeng; 02-03-2015, 10:15.

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        Originally posted by alekseyeng
        Вот сделал пример, где test - наименование процесса, и далее, если в 05:30 до 05:35 имеется процесс test то триггер начинает пищать. () в другое время не проверяет этот процесс, только в указанный период.

        {zabbix: Proc.num[test].last(0)}=1&{zabbix: Proc.num[test].time(0)}>053000&{zabbix: Proc.num[test].time(0)}<053500

        Поправьте пожалуйста, если что не так поправьте пожалуйста
        Ну вроде как правильно, но он у вас в 5:30 появится, а в 5:35 пропадет (в независимости от того будет еще процесс ТЕСТ выполняться или нет). Что бы он сам в 5:35 не пропадал смотрите гистерезис

        Comment

        • alekseyeng
          Member
          • Aug 2014
          • 54

          #5
          Originally posted by yukra
          Ну вроде как правильно, но он у вас в 5:30 появится, а в 5:35 пропадет (в независимости от того будет еще процесс ТЕСТ выполняться или нет). Что бы он сам в 5:35 не пропадал смотрите гистерезис

          Сегодня отработаю триггер вечером, посмотрю что и как еще нужно добавить! спасибо

          Comment

          • alekseyeng
            Member
            • Aug 2014
            • 54

            #6
            Originally posted by yukra
            Ну вроде как правильно, но он у вас в 5:30 появится, а в 5:35 пропадет (в независимости от того будет еще процесс ТЕСТ выполняться или нет). Что бы он сам в 5:35 не пропадал смотрите гистерезис
            Все таки я думаю понадобится гистерезис. Как я могу применить его к своему триггеру ???

            Comment

            • rough-84
              Senior Member
              • Oct 2014
              • 198

              #7
              ({TRIGGER.VALUE}=0 and
              {zabbix: Proc.num[test].last(0)}=1&{zabbix: Proc.num[test].time(0)}>053000&{zabbix: Proc.num[test].time(0)}<053500) or
              ({TRIGGER.VALUE}=1 and
              {zabbix: Proc.num[test].last(0)}=1)

              Как то так вроде.

              Да, и не надо никогда ничего ждать, практически любую ситуацию можно смоделировать, в вашем случае достаточно просто создать элемент данных с любым процессом (calc.exe) и протестировать, прописав любое время в параметры, после чего уже готовое решение прописать для рабочей версии.
              Last edited by rough-84; 02-03-2015, 13:52.

              Comment

              • alekseyeng
                Member
                • Aug 2014
                • 54

                #8
                Originally posted by rough-84
                ({trigger.value}=0 and
                {zabbix: Proc.num[test].last(0)}=1&{zabbix: Proc.num[test].time(0)}>053000&{zabbix: Proc.num[test].time(0)}<053500) or
                ({trigger.value}=1 and
                {zabbix: Proc.num[test].last(0)}=1)

                Как то так вроде.

                Да, и не надо никогда ничего ждать, практически любую ситуацию можно смоделировать, в вашем случае достаточно просто создать элемент данных с любым процессом (calc.exe) и протестировать, прописав любое время в параметры, после чего уже готовое решение прописать для рабочей версии.

                Т.е. будет выполнять следующие действие :

                с 05:30 по 05:35 он будет мониторить процесс ТЕСТ, если процесс ТЕСТ имеется то он пищит, если же нету, то ОК. правильно ? и если процесс ТЕСТ имеется после 05:35 то он тоже будет смотреть, пока ТЕСТ не пропадет.

                вопросы :
                а если к примеру мне нужно чтоб процесс ТЕСТ запустился, скажем в 06:00. Это делается для того чтоб убедится не залип ли процесс после остановки его в 03:00. И соотвественно запуск его же в 06:00. не будет ли он ругаться 06:00 что мол процесс запущен

                Comment

                • rough-84
                  Senior Member
                  • Oct 2014
                  • 198

                  #9
                  Перевожу:
                  Если состояние триггера равно = 0 (это состояние триггера ОК)
                  ({TRIGGER.VALUE}=0
                  и
                  and
                  {zabbix: Proc.num[test].last(0)}=1&{zabbix: Proc.num[test].time(0)}>053000&{zabbix: Proc.num[test].time(0)}<053500)
                  Ваше условие
                  тогда триггер сработает, время когда именно ему сработать вы сами выбираете, я триггер не правил, только подставил гестериоз.
                  Дальше идёт или
                  or
                  ({TRIGGER.VALUE}=1 and
                  {zabbix: Proc.num[test].last(0)}=1)
                  Если триггер находится в состоянии 1 (это состояние ПРОБЛЕМА), триггер уже находится в сработанном состоянии и должен в нём оставаться пока zabbix: Proc.num[test].last(0) будет равен чему угодно, только не 1, то есть условие должно нарушиться

                  Отвечая на Ваш вопрос.
                  Если в промежуток времени с 5:30 по 5:35, будет замечен процесс Test, триггер сработает, после каждого последнего полученного данного элемента данных будет происходить новая проверка уже по условию
                  zabbix: Proc.num[test].last(0)=1, как только будет не 1, триггер перейдёт в состояние ОК, сработать вновь после 5:35 он не сможет.

                  Comment

                  • alekseyeng
                    Member
                    • Aug 2014
                    • 54

                    #10
                    Originally posted by rough-84
                    Перевожу:
                    Если состояние триггера равно = 0 (это состояние триггера ОК)
                    ({TRIGGER.VALUE}=0
                    и
                    and
                    {zabbix: Proc.num[test].last(0)}=1&{zabbix: Proc.num[test].time(0)}>053000&{zabbix: Proc.num[test].time(0)}<053500)
                    Ваше условие
                    тогда триггер сработает, время когда именно ему сработать вы сами выбираете, я триггер не правил, только подставил гестериоз.
                    Дальше идёт или
                    or
                    ({TRIGGER.VALUE}=1 and
                    {zabbix: Proc.num[test].last(0)}=1)
                    Если триггер находится в состоянии 1 (это состояние ПРОБЛЕМА), триггер уже находится в сработанном состоянии и должен в нём оставаться пока zabbix: Proc.num[test].last(0) будет равен чему угодно, только не 1, то есть условие должно нарушиться

                    Отвечая на Ваш вопрос.
                    Если в промежуток времени с 5:30 по 5:35, будет замечен процесс Test, триггер сработает, после каждого последнего полученного данного элемента данных будет происходить новая проверка уже по условию
                    zabbix: Proc.num[test].last(0)=1, как только будет не 1, триггер перейдёт в состояние ОК, сработать вновь после 5:35 он не сможет.
                    HTML Code:
                    после каждого последнего полученного данного элемента данных будет происходить новая проверка уже по условию 
                    zabbix: Proc.num[test].last(0)=1
                    1. Возможно ли, чтоб он проверил процесс 1 раз в 05:30, и далее если ПРОБЛЕМА то пещал бы до 05:35? далее потом сам становился в состояние ОК в 05:55 ???

                    извините что так много вопросов, но я хочу понять и разобраться раз и на всегда.

                    Спасибо Вам за то что отвечаете, и помогаете ! Очень благодарен.

                    Comment

                    • rough-84
                      Senior Member
                      • Oct 2014
                      • 198

                      #11
                      Можно ли 1 раз проверять, я не знаю, неверное нет, знаю что он проверяет каждый раз, когда получает новые данные. С таким же успехом можно прописать получать данные раз в 24 часа в 5:25.

                      Что качается второго вопроса:

                      ({TRIGGER.VALUE}=0 and
                      {zabbix: Proc.num[test].last(0)}=1&{zabbix: Proc.num[test].time(0)}>053000&{zabbix: Proc.num[test].time(0)}<053500) or
                      ({TRIGGER.VALUE}=1 and
                      {zabbix: Proc.num[test].last(0)}=1&{zabbix: Proc.num[test].time(0)}>053000&{zabbix: Proc.num[test].time(0)}<053500)

                      Если сработает в 5:30 будет работать до 5:35, потом условие нарушится и перейдёт в состояние ОК, в котором тоже не сможет сработать до следующего дня. Но мне это сильно не нравится, ведь вы реально не видите устранилась проблема или нет. Придя с утра на работу, если тригер сработал, надо лесть и смотреть, в то время как если оставить его висеть до момента пока не исправится, было бы проще, имхо.

                      Лол сори тут тогда и гестериоз не нужен, просто
                      {zabbix: Proc.num[test].last(0)}=1&{zabbix: Proc.num[test].time(0)}>053000&{zabbix: Proc.num[test].time(0)}<053500
                      после 5:35 условие будет нарушено, и триггер вернётся в ОК.
                      Last edited by rough-84; 02-03-2015, 16:27.

                      Comment

                      Working...