Ad Widget

Collapse

Двойное отрабатывание скрипта по тригге&

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • doob
    Junior Member
    • Mar 2016
    • 7

    #1

    Двойное отрабатывание скрипта по тригге&

    Доброго времени суток!
    Появилась недавно проблема которую не можем побороть уже несколько дней
    Суть есть: шаблон, внутри шаблона триггер.
    {workstation_template:icmpping[,2,3000,,].max(3600)}=0

    создано действие:
    pk_no_response
    Template = workstation_template
    Run remote commands on current host

    выполняем скрипт: /home/zabbix/script/jrnl/SingleRecords.sh {DATE}"|"{TIME}"|"{HOST.IP}"|"{HOST.NAME}"|"{TRIGG ER.ID}"|"{TRIGGER.NAME}"|"{HOST.HOST} "RAW"

    Так вот скрипт выполняется по срабатыванию триггера два раза.
    хотя в логе reports -> action log запись об отработке одна.

    к примеру
    Command:
    :/home/zabbix/script/jrnl/SingleRecords.sh 2016.11.30"|"14:49:40"|"192.168.23.96"|"192.168.23 .96"|"19723"|"pk_no_response"|"192.168.23.96 "RAW"

    а вот в логе сервера нахожу такие вот непонятные вещи:
    5744:20161130:144940.720 [Z3005] query failed: [1062] Duplicate entry '80526' for key 'PRIMARY' [insert into alerts (alertid,actionid,eventid,clock,message;status,err or,esc_step,alerttype) values (80526,57,2988653,1480506580,':/home/zabbix/script/jrnl/SingleRecords.sh 2016.11.30"|"14:49:40"|"192.168.23.96"|"192.168.23 .96"|"19723"|"pk_no_response"|"192.168.23.96 "RAW"',1,'',1,1);

    Получается что таки заббикс пускает скрипт два раза.
    Куда копать?

    ах да, версия Zabbix 3.2.1
    Last edited by doob; 30-11-2016, 14:24. Reason: adding zabbix version
  • pzabortsev
    Senior Member
    • Dec 2012
    • 338

    #2
    Для начала я бы убедился, что скрипт действительной вызывается два раза.
    Самый просто способ - это писать куда-нибудь в /tmp pid запущенного процесса. Как писать - зависит от того, на чем сделан ваш скрипт

    Comment

    • doob
      Junior Member
      • Mar 2016
      • 7

      #3
      Originally posted by pzabortsev
      Для начала я бы убедился, что скрипт действительной вызывается два раза.
      Самый просто способ - это писать куда-нибудь в /tmp pid запущенного процесса. Как писать - зависит от того, на чем сделан ваш скрипт
      на беше, внутри скрипта используется башизм $$, он нужен мне, поэтому в логе скрипта я четко вижу что скрипт работал с разными pid.

      Comment

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

        #4
        А какова разница по времени между этими запусками скрипта?

        Comment

        • doob
          Junior Member
          • Mar 2016
          • 7

          #5
          Originally posted by kos
          А какова разница по времени между этими запусками скрипта?

          время одно и то же

          Comment

          • sadman
            Senior Member
            • Dec 2010
            • 1611

            #6
            Такое может быть, если у вас одно общее для всех проблем действие и еще одно "специализированное". Триггер, взведение которого, как вы считаете, ведет к срабатыванию второго действия, заодно дергает и первое.

            Comment

            • doob
              Junior Member
              • Mar 2016
              • 7

              #7
              Originally posted by sadman
              Такое может быть, если у вас одно общее для всех проблем действие и еще одно "специализированное". Триггер, взведение которого, как вы считаете, ведет к срабатыванию второго действия, заодно дергает и первое.
              Поясните пожалуйста, что-то не допонимаю.

              Comment

              • Semiadmin
                Senior Member
                • Oct 2014
                • 1625

                #8
                Можно попробовать клонировать все действия, запускающие скрипты, но вместо запуска скриптов отправлять письма. В письма добавить макрос {action.name}. Если придет 2 письма, будет ясно, что откуда.

                Comment

                • sadman
                  Senior Member
                  • Dec 2010
                  • 1611

                  #9
                  Originally posted by doob
                  Поясните пожалуйста, что-то не допонимаю.
                  Действие #1: триггер = проблема, задача - отсылка сообщения
                  Действие #2: триггер = проблема, имя триггера = "очень важный триггер", задача - отсылка сообщения

                  При срабатывании "очень важный триггер" оба действия должны сработать. Хотя, конечно, в логах должны быть две записи о срабатывании, если уж рассуждать логически.

                  А вообще - показали бы скриншоты действия - может там с шагами напутано или ещё чего.

                  Comment

                  • doob
                    Junior Member
                    • Mar 2016
                    • 7

                    #10
                    Originally posted by Semiadmin
                    Можно попробовать клонировать все действия, запускающие скрипты, но вместо запуска скриптов отправлять письма. В письма добавить макрос {action.name}. Если придет 2 письма, будет ясно, что откуда.
                    я склонировал действие и добавил туда по вашему совету {ACTION.NAME}
                    Это просто издевательство какое то
                    действие без {ACTION.NAME}
                    2016.12.01|09:24:45|192.168.30.41|192.168.30.41|19 569|pk_no_response|192.168.30.41
                    RAW
                    2016.12.01|09:24:46|192.168.30.41|192.168.30.41|19 569|pk_no_response|192.168.30.41
                    RAW

                    действие с {ACTION.NAME}
                    2016.12.01|09:24:46|192.168.30.41|192.168.30.41|19 569|pk_no_response|192.168.30.41|pk_no_response_wi th_action_name
                    RAW
                    2016.12.01|09:24:46|192.168.30.41|192.168.30.41|19 569|pk_no_response|192.168.30.41|pk_no_response_wi th_action_name

                    Comment

                    • sadman
                      Senior Member
                      • Dec 2010
                      • 1611

                      #11
                      Originally posted by doob
                      я склонировал действие и добавил туда по вашему совету {action.name}
                      Не допускаете мысли, что сам скрипт пишет дважды в лог?

                      Comment

                      • Semiadmin
                        Senior Member
                        • Oct 2014
                        • 1625

                        #12
                        Originally posted by doob
                        я склонировал действие и добавил туда по вашему совету {action.name}
                        А писем-то сколько пришло?

                        Comment

                        • glebs.ivanovskis
                          Senior Member
                          • Jul 2015
                          • 237

                          #13
                          В конфигурации действия только Current host или что-то ещё? Был баг, что если задан Current host и Host group и данный хост в этой группе, то на нём команда срабатывает два раза.

                          Comment

                          Working...