Перейти к основному содержимому
Версия: 7.13

Agent HTTP Plugin

Общие сведения

Плагин httpPlugin является встроенным модулем в приложение агента Monq начиная с версии 1.1.0.

Agent HTTP Plugin позволяет выполнять HTTP запросы, заданные пользователем в Потоке данных в виде YAML сценария, и поддерживает следующие методы HTTP запросов:

  • GET
  • POST
  • PUT
  • DELETE

Актуальную версию агента Monq можно загрузить по следующим ссылкам:

Формат сценария HTTP плагина

name: HTTP Request
jobs:
- name: HTTP Request
steps:
- plugin: httpPlugin
with:
url: {url}
method: {GET | POST | PUT | DELETE}
headers:
{header_name}: {header_value}
{header_name}: {header_value}
...
body: "{...}"
basicauth:
login: {login}
password: {password}
port: {port_number}
proxy:
address: {url}
bypasslist:
- {url}
- {url}
...
credentials:
login: {login}
password: {password}
redirects: {true | false}
insecure: {true | false}
queryparams:
{param_name}: {param_value}
{param_name}: {param_value}
...

Параметры конфигурации используемые в сценарии

ПараметрТипЗначение по умолчаниюОписание
urlStringнетURL ресурса, к которому будет выполнятся запрос
methodStringGETHTTP метод запроса
streamIdStringнетИдентификатор текущего потока ($.vars.stream.id)
streamKeyStringнетAPI ключ текущего потока ($.vars.stream.key)
headerslist[]нетСписок заголовков запроса
bodyStringнетТело запроса (обязательно в кавычках)
basicauth: loginStringнетЛогин Basic Auth
basicauth: passwordStringнетПароль Basic Auth
portIntegerнетЧисловое значение порта сервера, к которому будет обращен запрос
proxy: addressStringнетURL прокси-сервера, через который будет проходить запрос
proxy: bypasslistStringнетМассив адресов или регулярных выражений, описывающих адресы, при запросах к которым не будет использоваться прокси
proxy: credentials: loginStringнетЛогин для http-аутентификации на proxy-сервере
proxy: credentials: passwordStringнетПароль для http-аутентификации на proxy-сервере
redirectsBooleanFalseПараметр, позволяющий запросу следовать перенаправлениям
insecureBooleanFalseПараметр, позволяющий запросу выполнять небезопасное SSL подключение
queryparamslist[]нетСписок переменных параметров запроса
Обязательные параметры
  • url - URL ресурса, к которому будет выполнятся запрос
  • method - HTTP метод запроса
  • streamId - Идентификатор текущего потока ($.vars.stream.id)
  • streamKey - API ключ текущего потока ($.vars.stream.key)
  • Параметр headers указывается в следующем формате:

    headers:
    Accept: "application/json"
    {header_name1}: {header_value1}
    {header_name2}: {header_value2}
    {header_name3}: {header_value3}
  • Параметр queryparams указывается в следующем формате:

    queryparams:
    key: my_key
    {param_name1}: {param_value1}
    {param_name2}: {param_value2}
    {param_name3}: {param_value3}

    💡 Если параметры запроса одновременно указаны в url и в качестве параметров queryparams в Задании, итоговый запрос будет содержать все параметры

Шаблон ответа

Ответ на запрос от сервера парсится и преобразовывается в следующий JSON формат:

{
"StatusCode": "200",
"Headers": [
{
"Key": "",
"Value": [
""
]
}
],
"IsSuccessStatusCode": true,
"ResponseData": {},
"Error": ""
}
  • StatusCode - код HTTP ответа
  • Headers - массив заголовков ответа
  • ResponseData - данные в текстовом формате, полученные в ответе
  • IsSuccessStatusCode - флаг успешности запроса (true/false)
  • Error - текст ошибки, если IsSuccessStatusCode == false

Пример выполнения запроса к Zabbix API

name: Zabbix Request
jobs:
- name: Zabbix Request
steps:
- plugin: httpPlugin
with:
url: https://zabbix.domain.ru/api_jsonrpc.php
streamId: $.vars.stream.id
streamKey: $.vars.stream.key
method: POST
headers:
Content-Type: application/json
body: '{"jsonrpc":"2.0","method":"host.get","id":2,"auth":"{token}","params":{"output":["hostid","host","maintenance_status","name","status"]}}'