Agent HTTP Plugin
Общие сведения
Плагин httpPlugin
является встроенным модулем в приложение агента Monq начиная с версии 1.1.0.
Agent HTTP Plugin позволяет выполнять HTTP запросы, заданные пользователем в Потоке данных в виде YAML сценария, и поддерживает следующие методы HTTP запросов:
- GET
- POST
- PUT
- DELETE
Актуальную версию агента Monq можно загрузить по следующим ссылкам:
Доступна расширенная версия данного плагина - httpPlugin2.
Формат сценария 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}
...
Параметры конфигурации используемые в сценарии
Параметр | Тип | Значение по умолчанию | Описание |
---|---|---|---|
url | String | нет | URL ресурса, к которому будет выполнятся запрос |
method | String | GET | HTTP метод запроса |
streamId | String | нет | Идентификатор текущего потока ($.vars.stream.id ) |
streamKey | String | нет | API ключ текущего потока ($.vars.stream.key ) |
headers | list[] | нет | Список заголовков запроса |
body | String | нет | Тело запроса (обязательно в кавычках) |
basicauth: login | String | нет | Логин Basic Auth |
basicauth: password | String | нет | Пароль Basic Auth |
port | Integer | нет | Числовое значение порта сервера, к которому будет обращен запрос |
proxy: address | String | нет | URL прокси-сервера, через который будет проходить запрос |
proxy: bypasslist | String | нет | Массив адресов или регулярных выражений, описывающих адресы, при запросах к которым не будет использоваться прокси |
proxy: credentials: login | String | нет | Логин для http-аутентификации на proxy-сервере |
proxy: credentials: password | String | нет | Пароль для http-аутентификации на proxy-сервере |
redirects | Boolean | False | Параметр, позволяющий запросу следовать перенаправлениям |
insecure | Boolean | False | Параметр, позволяющий запросу выполнять небезопасное SSL подключение |
queryparams | list[] | нет | Список переменных параметров запроса |
Обязательные параметры
- 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"]}}'