Ad Widget

Collapse

Параметризация айтемов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • IrinaSh
    Junior Member
    • Jun 2020
    • 3

    #1

    Параметризация айтемов

    Добрый день,

    я бы хотела с помощью HTTP agent мониторить доступность нескольких служеб. Возможно ли создать параметризированный айтем, который спустится для каждого значения параметра.

    То есть URL бы выглядела следующим образом:
    http://{HOST.IP}:8000/WHAT/EVER/{parameter1}//Healthcheck,
    где вместо parameter1 бы поочередно использовались значения из какого-то списка. Триггер бы спустился в случае, когда хотя бы одна служба вернула что угодно кроме 200.

    Существует какой-то разумный способ проверять доступность Х служеб и не создавать при этом столько же айтемов.

    Большое спасибо
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Доброе время суток, Ирина.
    Способ существует, но не без подводных камней. Начнем с того, что HTTP agent не очень подходит для мониторинга доступности ввиду своей склонности становиться неподдерживаемым в случае, например, проблемы с резолвингом или таймаута. В этом плане лучше веб-сценарии, но, увы, их нельзя сделать прототипами в LLD rule. А в вашем случае нужно именно LLD. В светлом будущем разработчики Zabbix обещают слияние этих двух типов проверок. Но можно в HTTP agent поставить Retrieve mode - Headers, Required status codes не указывать, вытаскивать HTTP status code препроцессингом, а на случай неподдерживаемости сделать отдельный прототип триггера с nodata, благо в 5.0 эта функция поумнела. Альтернатива - старый добрый внешний скрипт с curl, там можно реализовать любую логику.
    Теперь про LLD rule. Список можно поместить в user macro и сделать для чтения списка LLD rule, в js-препроцессинге которого изготовить из списка в макросе JSON. В LLD rule сделать прототип айтема вроде http://{HOST.IP}:8000/WHAT/EVER/{#PARAMETER}//Healthcheck. Ну и прототип триггера, конечно.
    Надеюсь, не сильно напугал.

    Comment

    • IrinaSh
      Junior Member
      • Jun 2020
      • 3

      #3
      Originally posted by Semiadmin
      Доброе время суток, Ирина.
      Способ существует, но не без подводных камней. Начнем с того, что HTTP agent не очень подходит для мониторинга доступности ввиду своей склонности становиться неподдерживаемым в случае, например, проблемы с резолвингом или таймаута. В этом плане лучше веб-сценарии, но, увы, их нельзя сделать прототипами в LLD rule. А в вашем случае нужно именно LLD. В светлом будущем разработчики Zabbix обещают слияние этих двух типов проверок. Но можно в HTTP agent поставить Retrieve mode - Headers, Required status codes не указывать, вытаскивать HTTP status code препроцессингом, а на случай неподдерживаемости сделать отдельный прототип триггера с nodata, благо в 5.0 эта функция поумнела. Альтернатива - старый добрый внешний скрипт с curl, там можно реализовать любую логику.
      Теперь про LLD rule. Список можно поместить в user macro и сделать для чтения списка LLD rule, в js-препроцессинге которого изготовить из списка в макросе JSON. В LLD rule сделать прототип айтема вроде http://{HOST.IP}:8000/WHAT/EVER/{#PARAMETER}//Healthcheck. Ну и прототип триггера, конечно.
      Надеюсь, не сильно напугал.
      Большое спасибо за ответ, в конце концов остановилась на внешнем скрипте

      Comment

      Working...