Ad Widget

Collapse

Как создать скрипт, вызывающий веб-страни

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Scales
    Member
    • May 2015
    • 36

    #1

    Как создать скрипт, вызывающий веб-страни

    Всем доброго времени суток!
    Попробую объяснить ситуацию. В картах сетей есть различные элементы, которые относятся к соответствующим группам узлов сети. В каждый элемент можно добавить URLы для перехода. А как сделать это через скрипт, чтобы он появился для конкретной группы узлов сети в разделе скрипты, например пунктик "Инструкция", который будет в новом окне выдавать файл.pdf и чтобы не пришлось в каждый элемент группы сети добавлять этот URL. Сразу скажу, вопрос не в том, как конкретный скрипт прикрутить к группе узлов сети, а вопрос относительно самого скрипта? Нужно, чтобы скрипт вызывал новое окно браузера с адресом http://my-zabbix-server/instruction_for_device.pdf
    А ещё хотелось бы вариант типа http://host-device-ip/index.php , например для перехода в админку девайса со страницы карты сети.
    Возможно ли так сделать? Или в каждом элементе карты сети вдалбливать URLы?
    Заранее спасибо.
  • viktorkho
    Member
    • Jul 2013
    • 90

    #2
    Вот это не совсем понятно: "сделать это через скрипт, чтобы он появился для конкретной группы узлов сети в разделе скрипты, например пунктик "Инструкция""

    Вот это: "для перехода в админку девайса со страницы карты сети" делается настолько просто, что я снова сомневаюсь, правильно ли понял вопрос. В диалоге "Изменение элемента карты сети" (в редакторе карты) в разделе URLы добавляете ссылку с произвольным именем и адресом (http://10.20.30.40/configure).

    В какой-то недавней версии ситуация с макросами как-то непонятно изменилась.. См. тут: https://www.zabbix.com/documentation...ed_by_location

    Comment

    • Scales
      Member
      • May 2015
      • 36

      #3
      Originally posted by viktorkho
      Вот это не совсем понятно: "сделать это через скрипт, чтобы он появился для конкретной группы узлов сети в разделе скрипты, например пунктик "Инструкция""
      Когда я нажимаю ЛКМ на элементе, выходит менюшка, в которой есть разделы: "Скрипты", "Перейти к", "URLы"

      Originally posted by viktorkho
      Вот это: "для перехода в админку девайса со страницы карты сети" делается настолько просто, что я снова сомневаюсь, правильно ли понял вопрос. В диалоге "Изменение элемента карты сети" (в редакторе карты) в разделе URLы добавляете ссылку с произвольным именем и адресом (http://10.20.30.40/configure).
      Через диалог "Изменение элемента карты сети" - всё понятно!

      То есть, если я захочу "прикрутить" ссылку в админки к 20-ти идентичным свитчам (соответственно с разными IP-шниками) или в той самой менюхе (по ЛКМ на элементе карты сети) захочу дать ссыль на одну и ту же инструкцию, то мне в каждом элементе данных (а их 20-ть штук), всех карт сетей нужно будет добавить по два URLа. 1-й на админку, 2-й на мануал!!! По другому никак?

      Извините за мой корявый...

      А можно ли сделать для группы узлов сети какую-то одну манипуляцию, чтобы, например, для всех свитчей по нажатию на ЛКМ, в разделе "URLы" той самой менюхи, появилась одна и та же ссылка на инструкцию?
      Last edited by Scales; 17-08-2015, 15:16.

      Comment

      • Zentarim
        Senior Member
        • Mar 2012
        • 526

        #4
        Originally posted by Scales

        А можно ли сделать для группы узлов сети какую-то одну манипуляцию, чтобы, например, для всех свитчей по нажатию на ЛКМ, в разделе "URLы" той самой менюхи, появилась одна и та же ссылка на инструкцию?

        Если zabbix 2,4 , то, теоретически, можно попытаться использовать макрос
        {HOST.CONN<1-9>}

        Comment

        • viktorkho
          Member
          • Jul 2013
          • 90

          #5
          захочу "прикрутить" ... а их 20-ть штук... По другому никак?
          На сегодня, насколько я знаю, никак. В группе разработки Zabbix отношение к картам, похоже, чисто номинальное - лишь бы что-то было и называлось визуализацией.

          На одном из проектов (около 300 хостов на картах с подкартами) просто решено было штамповать карты типовыми, что позволило генерировать скриптом хоть для 20, хоть для 2000 хостов за раз. На вход скрипту можно отдавать файл zbx_export_hosts, на выходе - zbx_export_maps (или по одному файлу на группу).

          Как рабочий вариант можте использовать API - палочка-выручалочка, когда чего-то нет, а автоматизировать что-то хочется. (Ваш случай?)

          Предлагаю оформить "фьюче реквестом" и пригласить друзей 20-30, чтобы они "вотнули" ваш реквест. Тогда он будет иметь шансы на решение.

          *UPD*
          Как предлагает @Zentarim, можно использовать макрос, да, но его всё равно придётся скопипастить руками 20 раз в одно и то же поле.
          Last edited by viktorkho; 17-08-2015, 15:34.

          Comment

          • Zentarim
            Senior Member
            • Mar 2012
            • 526

            #6
            Создадите zbxnext - подпишусь. Иногда действительно не хватает.

            Comment

            • Scales
              Member
              • May 2015
              • 36

              #7
              Originally posted by viktorkho
              Как рабочий вариант можте использовать API - палочка-выручалочка, когда чего-то нет, а автоматизировать что-то хочется. (Ваш случай?)
              Думаю да, прошу прощения, а можно про API как-нибудь на простом языке рассказать. Почитал документацию, ни фига не допетрил. Расскажите, с чего начать? Нужно лопатить *.php фалы? Хотелось бы хоть какую-то маломальскую информацию, с чего начать? Может пример какой-нибудь?

              Comment

              • viktorkho
                Member
                • Jul 2013
                • 90

                #8
                Originally posted by Scales
                Думаю да, прошу прощения, а можно про API как-нибудь на простом языке рассказать. Почитал документацию, ни фига не допетрил. Расскажите, с чего начать? Нужно лопатить *.php фалы? Хотелось бы хоть какую-то маломальскую информацию, с чего начать? Может пример какой-нибудь?
                Из вопроса не ясно, насколько подробно требуется рассказать.

                - Zabbix использует REST API. В 2 словах - ваш скрипт методом POST шлёт скрипту http://zabbix.local/zabbix/api_jsonrpc.php нужным образом сформированный JSON либо XML запрос, на выбор, и получает ответ тоже в виде JSON или XML.
                - Скрипт удобно писать на python, lua, ruby, etc, но не на bash (можно и на bash, но проще освоить другой язык, проверено).
                - Все возможности Zabbix API описаны в документации, вам смотреть как минимум (см. для своей версии):



                Хотя, мне сейчас кажется, что вашу задачу можно решить одноразово в vim.
                Что-то вроде: создать URL для одного узла; экспортнуть карту и открыть её в vim (emax, sublime, etc), файл XML; посмотреть, как этот URL выглядит прикрепленным к одному selement (объект карты) и по аналогии скопипастить к каким-нибудь еще; импортнуть карту, проверить, если сработало - повторить копипасту (с заменой адресов, естественно) для всех selement'ов.

                Comment

                • Scales
                  Member
                  • May 2015
                  • 36

                  #9
                  Originally posted by viktorkho
                  Из вопроса не ясно, насколько подробно требуется рассказать.

                  - zabbix использует rest api. В 2 словах - ваш скрипт методом post шлёт скрипту http://zabbix.local/zabbix/api_jsonrpc.php нужным образом сформированный json либо xml запрос, на выбор, и получает ответ тоже в виде json или xml.
                  - Скрипт удобно писать на python, lua, ruby, etc, но не на bash (можно и на bash, но проще освоить другой язык, проверено).
                  - Все возможности zabbix api описаны в документации, вам смотреть как минимум (см. для своей версии):



                  Хотя, мне сейчас кажется, что вашу задачу можно решить одноразово в vim.
                  Что-то вроде: создать url для одного узла; экспортнуть карту и открыть её в vim (emax, sublime, etc), файл xml; посмотреть, как этот url выглядит прикрепленным к одному selement (объект карты) и по аналогии скопипастить к каким-нибудь еще; импортнуть карту, проверить, если сработало - повторить копипасту (с заменой адресов, естественно) для всех selement'ов.
                  Спасибо! Буду изучать!

                  Comment

                  • Scales
                    Member
                    • May 2015
                    • 36

                    #10
                    РЕшено

                    Не знаю на счет того правильный подход или нет, но я тупо допилил scripts_exec.php. Теперь для всех коммутаторов в скриптах появилась вкладка "Инструкция" и "Настройка". После нажатия в окне скрипта появляется пдф или веб гуй от девайса.

                    Comment

                    • fendibober
                      Junior Member
                      • Nov 2020
                      • 2

                      #11
                      Originally posted by Scales
                      РЕшено

                      Не знаю на счет того правильный подход или нет, но я тупо допилил scripts_exec.php. Теперь для всех коммутаторов в скриптах появилась вкладка "Инструкция" и "Настройка". После нажатия в окне скрипта появляется пдф или веб гуй от девайса.
                      А можно пример этого костыля?)

                      Comment

                      Working...