Ad Widget

Collapse

Action, вызов внешней команды и передача данных

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Abus56
    Junior Member
    • Aug 2017
    • 5

    #1

    Action, вызов внешней команды и передача данных

    Добрый день, пытаюсь настроить действия на тригеры, но никак не могу передать внешнему скрипту параметы Тригера, в логах агента видно, что что команда отработала, но данные в неё не передались.
    Логи агента забикса
    Code:
     29670:20170822:143536.319 Executing command ' {status.trunk.asterisk.discovery[{#SERVERIP},{#TRUNKIP}]} {LLDRULE.KEY}  sip reload"'
     29669:20170822:144536.413 Executing command ' {status.trunk.asterisk.discovery[{#SERVERIP},{#TRUNKIP}]} {LLDRULE.KEY}  {$ITEM.KEY} {$SERVERIP}"sip reload"'
     29670:20170822:150038.406 Executing command ' {status.trunk.asterisk.discovery[{#SERVERIP},{#TRUNKIP}]} {LLDRULE.KEY}  {$ITEM.KEY} {$SERVERIP}"sip reload"'
     29669:20170822:152537.209 Executing command ' {status.trunk.asterisk.discovery[{#SERVERIP},{#TRUNKIP}]} {LLDRULE.KEY}  {$ITEM.KEY} {$SERVERIP}"sip reload"'
     29669:20170822:163034.635 Executing command ' {#SERVERIP},{#TRUNKIP} {LLDRULE.KEY}  sip reload" {$ITEM.KEY1}{$ITEM.KEY2}{$ITEM.KEY3}'
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Добрый.
    К сожалению, из скриншотов не видно, как именно вы передаете параметры, но что можно заметить:
    - если {$ITEM.KEY1}, etc - встроенные макросы Zabbix, а не пользовательские, то $ быть не должно
    - в таблице https://www.zabbix.com/documentation...ed_by_location
    можно посмотреть, где какие макросы поддерживаются. Из нее понятно, что, например, {LLDRULE.KEY} и {ITEM.KEY} не передаются в команды.

    Comment

    • Abus56
      Junior Member
      • Aug 2017
      • 5

      #3
      Добрый день, спасибо что откликнулись, в итоге проблема которую я не смог решить это отправить команду на стороне asterisk
      Code:
      '/usr/local/scripts/asterisk-monitor/asterisk-ami-send_command.py  {{TRIGGER.NAME}.iregsub("srv-\w\d+-asterisk", \1)} "sip reload"'
      на стороне клиента это выглядело
      Code:
      /usr/local/scripts/asterisk-monitor/asterisk-ami-send_command.py 
      {server srv-d21-asterisk is not registered.iregsub("srv-\w\d+-asterisk", \1)} "sip reload"'
      В итоге рабочий вариат - просто в самом скрипте сделал обработку первого входного паметра с помощью регулярки, и впринцие всё заработало

      Интересно почему не отрабывает {{TRIGGER.NAME}.iregsub("srv-\w\d+-asterisk", \1)}

      Comment

      • nullemotion
        Junior Member
        • Jul 2017
        • 14

        #4
        Originally posted by Abus56
        Интересно почему не отрабывает {{TRIGGER.NAME}.iregsub("srv-\w\d+-asterisk", \1)}
        Группа никакая не задана, вот и не работает. Скобки круглые добавь - всё, что в них будет, станет \1.
        {{TRIGGER.NAME}.iregsub("блаблабла (нужная инфа) блаблабла", \1)} = нужная инфа.

        Comment

        • Abus56
          Junior Member
          • Aug 2017
          • 5

          #5
          Originally posted by nullemotion
          Группа никакая не задана, вот и не работает. Скобки круглые добавь - всё, что в них будет, станет \1.
          {{TRIGGER.NAME}.iregsub("блаблабла (нужная инфа) блаблабла", \1)} = нужная инфа.
          Не работает
          Code:
          Сервер {{TRIGGER.NAME}.iregsub(".*(srv-\w\d+-asterisk).*", \1)} 
          Сервер {{TRIGGER.NAME}.iregsub("(srv-\w\d+-asterisk)", \1)}
          возращает
          Code:
          Сервер {Trunk 192.168.0.221 on server srv-d21-asterisk is not registered.iregsub(".*(srv-\w\d+-asterisk).*", \1)} 
          Сервер {Trunk 192.168.0.221 on server srv-d21-asterisk is not registered.iregsub("(srv-\w\d+-asterisk)", \1)}

          Comment

          • nullemotion
            Junior Member
            • Jul 2017
            • 14

            #6
            Видимо, там функция iregsub в принципе не работает. Попробуй использовать её на этапе формирования имени триггера: {{ITEM.VALUE}.iregsub("(srv-\w\d+-asterisk)", \1)}

            Comment

            • Abus56
              Junior Member
              • Aug 2017
              • 5

              #7
              Originally posted by nullemotion
              Видимо, там функция iregsub в принципе не работает. Попробуй использовать её на этапе формирования имени триггера: {{item.value}.iregsub("(srv-\w\d+-asterisk)", \1)}
              тот же результат

              Comment

              • nullemotion
                Junior Member
                • Jul 2017
                • 14

                #8
                Тогда вопрос - какая версия zabbix?
                iregsub появился с версии 3.2, может у тебя более старая?

                Comment

                • Abus56
                  Junior Member
                  • Aug 2017
                  • 5

                  #9
                  версия установлена 3.2, обвновлялась с версии 3.0
                  лан позже обновлсь до 3.4 и там посмотрим, заработает или нет, главное свою проблему я решил=)

                  Comment

                  • glebs.ivanovskis
                    Senior Member
                    • Jul 2015
                    • 237

                    #10
                    Ещё в 3.2 на стороне сервера используются регулярные выражения POSIX Extended, а не PCRE. Так что у \w и \d нет того специального смысла, на который Вы, вероятно, полагаетесь.

                    Comment

                    Working...