Ad Widget

Collapse

Мониториннг веб сайта

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • aleksey.ishchenko
    Senior Member
    • May 2020
    • 187

    #1

    Мониториннг веб сайта

    Нужно мониторить доступнось сайта
    Запрос curl -X POST 'http://10.52.2.216:8192/query?async=false' -H "Accept-Version: 1" -H "Content-Type: application/json" -d '{"sql": {"sql": "select 1"}}'
    Вывод должен быть следующим:

    {
    "created_at": "YYYY-MM-DD HH-MM-SS",
    "query_id": "<identifier>",
    "meta": [

    { "name": "EXPR$0", "type": "INTEGER" }

    ],
    "rows": [
    [
    "1"
    ]
    ]
    }
    Сделал веб сценарий

    Click image for larger version  Name:	image.png Views:	0 Size:	30.4 KB ID:	502307
    Сделал шаг
    Click image for larger version  Name:	image.png Views:	0 Size:	40.3 KB ID:	502308
    В url http://10.52.2.216:8192/query?async=false' -H "Accept-Version: 1" -H "Content-Type: application/json" -d '{"sql": {"sql": "select 1"}}'
    Требуемая строка EXPR$0
    Cделал два графика, но на графиках нет данных.
    В чем ошибка? В строке url должен быть другой вид строки?


    Last edited by aleksey.ishchenko; 25-04-2025, 08:45. Reason: Шаг "index" [1 из 1] завершен с ошибкой: URL using bad/illegal format or missing URL
  • Answer selected by aleksey.ishchenko at 25-04-2025, 11:41.
    Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    Originally posted by aleksey.ishchenko
    Те мне надо 'http://10.52.2.216:8192/query?async=false' -H "Accept-Version: 1" -H "Content-Type: application/json" -d '{"sql": {"sql": "select 1"}}' вставить в тнл post сырые данные
    Или полностью запрос включяая cutl ?
    • В поле "URL" вставить сам URL:
    Code:
    http://10.52.2.216:8192/query?async=false
    Альтернативный вариант - указать там только
    Code:
    http://10.52.2.216:8192/query
    а в следующей секции "Поля запроса" указать поле с именем "async" и значением "false".
    Результат будет тот же, но первый вариант, мне кажется, проще.
    Второй вариант имеет смысл, когда в вашем URL присутствует много параметров и удобнее видеть их по отдельности.
    • Поле "Тип POST" переключить на вариант "Сырые данные" и в следующем поле указать то, что пойдёт в теле запроса (то, что передаётся утилите curl как значение параметра "-d"):
    Code:
    {"sql": {"sql": "select 1"}}
    • В секции "Заголовки" указать нужные заголовки:
    Имя Значение
    Accept-Version 1
    Content-Type application/json
    (Добавлено)
    Обратил внимание за это замечание:
    Cделал два графика, но на графиках нет данных.
    А что именно вы хотите видеть на графиках?
    Если возвращаемое в теле HTTP-ответа значение (ту самую единицу, которая вот здесь:
    "rows": [
    [
    "1"
    ]​
    ), то через веб-сценарий это сделать не получится. Веб-сценарий возвращает только признак успешности своего завершения (удалось ли выполнить все шаги, с учётом требуемых кодов завершения и наличия в ответе нужных подстрок, если они заданы) и некоторую статистику (типа времени выполнения каждого из шагов), но не сам ответ.
    Если нужно извлекать значение из ответа, то это делается с помощью элемента данных с типом "HTTP агент" (и, возможно, предобработки, чтобы извлечь из ответа нужный фрагмент), но там настройки очень похожи на те, что в веб-сценариях (только нужно будет явно указать, что "Тип запроса" = "POST").
    Last edited by Kos; 25-04-2025, 11:53.

    Comment


    • aleksey.ishchenko
      aleksey.ishchenko commented
      Editing a comment
      Спасибо большое за Вашу помощь.
  • Hamardaban
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2019
    • 2713

    #2
    URL - это именно url (http://10.52.2.216:8192/query) ! Для остального есть специальные поля в форме настройки
    Например то что в курле задает параметр -H это «заголовки»: имя Accept-Version / значение 1.
    Ну и так далее.
    Last edited by Hamardaban; 25-04-2025, 09:19.

    Comment

    • aleksey.ishchenko
      Senior Member
      • May 2020
      • 187

      #3

      Поменял, но все равно ощибка
      Шаг "index" [1 из 1] завершен с ошибкой: required pattern ""1"" was not found on http://10.52.2.216:8192/


      Click image for larger version

Name:	image.png
Views:	66
Size:	38.8 KB
ID:	502323

      Comment

      • aleksey.ishchenko
        Senior Member
        • May 2020
        • 187

        #4
        Но если выбираю 1, после
        "rows": [
        [
        "1"
        То все ок.
        Никакие другие строки не попадают, это нормально?

        Comment

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

          #5
          Originally posted by aleksey.ishchenko
          Поменял, но все равно ощибка
          Шаг "index" [1 из 1] завершен с ошибкой: required pattern ""1"" was not found on http://10.52.2.216:8192/


          Click image for larger version  Name:	image.png Views:	0 Size:	38.8 KB ID:	502323
          Как бы вам так помягче сказать, глядя на ваш скриншот...

          Вы бы хоть на уровне Википедии бы почитали, что ли, что такое URL и какова структура запросов/ответов в протоколе HTTP.

          Например, "query?async=false" - это часть URL (ссылка), кусок пути и параметр; их не надо механически запихивать в заголовки (ссылка) HTTP-запроса.
          "application/json" - это значение заголовка с именем "Content-Type" (без двоеточия), а "-d" - это вообще параметр утилиты curl, указывающий на то, что следующий параметр - это тело запроса (которое в Zabbix-форме можно поместить в поле "Сырой post", если параметр "Тип Post" переключить в "Сырые данные").​​

          Comment

          • aleksey.ishchenko
            Senior Member
            • May 2020
            • 187

            #6

            Те мне надо 'http://10.52.2.216:8192/query?async=false' -H "Accept-Version: 1" -H "Content-Type: application/json" -d '{"sql": {"sql": "select 1"}}' вставить в тнл post сырые данные
            Или полностью запрос включяая cutl ?

            Comment

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

              #7
              Originally posted by aleksey.ishchenko
              Те мне надо 'http://10.52.2.216:8192/query?async=false' -H "Accept-Version: 1" -H "Content-Type: application/json" -d '{"sql": {"sql": "select 1"}}' вставить в тнл post сырые данные
              Или полностью запрос включяая cutl ?
              • В поле "URL" вставить сам URL:
              Code:
              http://10.52.2.216:8192/query?async=false
              Альтернативный вариант - указать там только
              Code:
              http://10.52.2.216:8192/query
              а в следующей секции "Поля запроса" указать поле с именем "async" и значением "false".
              Результат будет тот же, но первый вариант, мне кажется, проще.
              Второй вариант имеет смысл, когда в вашем URL присутствует много параметров и удобнее видеть их по отдельности.
              • Поле "Тип POST" переключить на вариант "Сырые данные" и в следующем поле указать то, что пойдёт в теле запроса (то, что передаётся утилите curl как значение параметра "-d"):
              Code:
              {"sql": {"sql": "select 1"}}
              • В секции "Заголовки" указать нужные заголовки:
              Имя Значение
              Accept-Version 1
              Content-Type application/json
              (Добавлено)
              Обратил внимание за это замечание:
              Cделал два графика, но на графиках нет данных.
              А что именно вы хотите видеть на графиках?
              Если возвращаемое в теле HTTP-ответа значение (ту самую единицу, которая вот здесь:
              "rows": [
              [
              "1"
              ]​
              ), то через веб-сценарий это сделать не получится. Веб-сценарий возвращает только признак успешности своего завершения (удалось ли выполнить все шаги, с учётом требуемых кодов завершения и наличия в ответе нужных подстрок, если они заданы) и некоторую статистику (типа времени выполнения каждого из шагов), но не сам ответ.
              Если нужно извлекать значение из ответа, то это делается с помощью элемента данных с типом "HTTP агент" (и, возможно, предобработки, чтобы извлечь из ответа нужный фрагмент), но там настройки очень похожи на те, что в веб-сценариях (только нужно будет явно указать, что "Тип запроса" = "POST").
              Last edited by Kos; 25-04-2025, 11:53.

              Comment


              • aleksey.ishchenko
                aleksey.ishchenko commented
                Editing a comment
                Спасибо большое за Вашу помощь.
            Working...