Ad Widget

Collapse

Веб проверка с Windows сервера

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Dusty
    Member
    • Dec 2010
    • 70

    #1

    Веб проверка с Windows сервера

    Задача:

    Есть сервер в сети, скажем с внутренним адресом 192.168.1.90. Только с него можно зайти на определённый сайт в интернете, больше ниоткуда.

    Как настроить проверку доступности веб-сайта штатными средствами?

    Веб сценарии не подходят, так как запускаются в любом случае с zabbix-сервера. Может через UserParameter, поставить на сервер какое-нибудь подобие cUrl или Lynx?

    Подскажите пожалуйста, кто как делал.
  • allexpetrov
    Senior Member
    Zabbix Certified Trainer
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2017
    • 361

    #2
    Добрый день,
    я могу только предполагать(ибо все индивидуально), но есть смысл выполнять скрипт через UserParameter либо запускать скрипт через cron.

    Скачивать curl-ом страницу и в ней искать стрингу, если да, то отрапортовать Zabbix-у как все впорядке, а если нет - то зарядить проблему. Я считаю, что нужно подключить zabbix_sender к этому, т.к. он может слать numeric values, а не текстовые. Их будет проще имнтерпритировать и навешивать Триггеры.

    С уважением,
    Алексей!

    Comment

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

      #3
      У штатного Zabbix-агента (его можно поставить на Ваш внутренний сервер) есть несколько метрик, которые могут быть полезными для данной задачи:
      • web.page.get[host,<path>,<port>]
      • web.page.perf[host,<path>,<port>]
      • web.page.regexp[host,<path>,<port>,<regexp>,<length>,<output>]

      Например, просто "доступность" сайта можно проверять второй из них (float, возвращает время загрузки страницы в секундах; Returns 0 on fail).
      Last edited by Kos; 12-09-2017, 11:31. Reason: очепятка

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        А в 3.4 можно через preprocessing извлечь из web.page.get html status code.
        P.S. Правда, при полной недоступности сайта получаем отсутствие данных. Так что в триггер, видимо, кроме условия <>200 надо будет or nodata добавлять.
        Last edited by Semiadmin; 12-09-2017, 11:53.

        Comment

        • Dusty
          Member
          • Dec 2010
          • 70

          #5
          Originally posted by Kos
          У штатного Zabbix-агента (его можно поставить на Ваш внутренний сервер) есть несколько метрик, которые могут быть полезными для данной задачи:
          • web.page.get[host,<path>,<port>]
          • web.page.perf[host,<path>,<port>]
          • web.page.regexp[host,<path>,<port>,<regexp>,<length>,<output>]

          Например, просто "доступность" сайта можно проверять второй из них (float, возвращает время загрузки страницы в секундах; Returns 0 on fail).
          Уже пробовал - почему-то не работает. Get и regexp получают пустую строку, Perf - 0. Что только не изменял.

          Строка такая:



          Соответственно айтем:

          web.page.perf[555.555.555.555,WebApp/?Id,4434]
          Last edited by Dusty; 12-09-2017, 13:10.

          Comment

          • Semiadmin
            Senior Member
            • Oct 2014
            • 1625

            #6
            А так:
            web.page.perf[555.555.555.555,/WebApp/?Id,4434]
            ?

            Comment

            • Dusty
              Member
              • Dec 2010
              • 70

              #7
              Originally posted by semiadmin
              А так:
              Web.page.perf[555.555.555.555,/webapp/?id,4434]
              ?
              Ничего не изменилось

              Comment

              • Dusty
                Member
                • Dec 2010
                • 70

                #8
                Хост живой, без дополнительной строки и порта информацию отдаёт без проблем, без порта, но со строкой шлёт коды ошибок типа 400 и 403. Видимо там как-то хитро настроен фаерволл.

                Спасибо всем, буду искать обходные пути.

                Comment

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

                  #9
                  Хм, могу предположить, что стандартный агент умеет ходить только по HTTP и не умеет по HTTPS
                  В таком случае - остаётся только через внешние скрипты (с вызовом того же curl, wget или чего-то подобного), подключаемые через UserParameters.

                  Можно, конечно, попытаться поставить на Ваш сервер не Zabbix-агента, а HTTP-proxy, и делать штатные веб-проверки Zabbix-сервером через прокси. Но мне кажется, что это некоторое извращение

                  Comment

                  • Semiadmin
                    Senior Member
                    • Oct 2014
                    • 1625

                    #10
                    Originally posted by Kos
                    Хм, могу предположить, что стандартный агент умеет ходить только по HTTP и не умеет по HTTPS
                    Я тоже так подумал, проверил www.yandex.ru:443. Умеет.

                    Comment

                    Working...