Действие Watcher webhook
Используйте действие webhook для отправки запроса любому веб-сервису. Действие webhook поддерживает подключения HTTP и HTTPS. См. Атрибуты действия webhook для поддержки атрибутов.
Настройка действий webhook
Действия webhook настраиваются в массиве actions. Атрибуты, специфичные для действия, указываются с помощью ключевого слова webhook.
Следующий фрагмент демонстрирует простое определение действия webhook:
"actions" : {
"my_webhook" : {
"transform" : { ... },
"throttle_period" : "5m",
"webhook" : {
"method" : "POST",
"host" : "mylisteningserver",
"port" : 9200,
"path": "/{{ctx.watch_id}}",
"body" : "{{ctx.watch_id}}:{{ctx.payload.hits.total}}"
}
}
} | Идентификатор действия | |
| Необязательное преобразование для преобразования полезной нагрузки перед выполнением действия | |
| Необязательный период ограничения скорости для действия (5 минут в этом примере) | |
| HTTP-метод, используемый при подключении к хосту | |
| Хост для подключения | |
| Порт для подключения | |
| Путь (URI) для использования в HTTP-запросе | |
| Тело, которое нужно отправить с запросом |
При отправке запроса на защищённый веб-сервис можно использовать базовые аутентификационные данные. Например, следующее действие webhook создаёт новую проблему в GitHub:
"actions" : {
"create_github_issue" : {
"transform": {
"script": "return ['title':'Found errors in \\'contact.html\\'', 'body' : 'Found ' + ctx.payload.hits.total + ' errors in the last 5 minutes', 'assignee' : 'web-admin', 'labels' : ['bug','sev2']]"
},
"webhook" : {
"method" : "POST",
"url" : "https://api.github.com/repos/<owner>/<repo>/issues",
"body": "{{#toJson}}ctx.payload{{/toJson}}",
"auth" : {
"basic" : {
"username" : "<username>",
"password" : "<password>"
}
}
}
}
} | Имя пользователя и пароль пользователя, создающего проблему |
По умолчанию и имя пользователя, и пароль хранятся в индексе .watches в виде простого текста. При включённых функциях безопасности Elasticsearch Watcher может зашифровать пароль перед его сохранением.
При отправке запросов в кластер с включёнными функциями безопасности Elasticsearch также можно использовать аутентификацию на основе PKI. При использовании аутентификации на основе PKI вместо базовой аутентификации HTTP не нужно хранить никакую информацию об аутентификации в самом watch. Чтобы использовать аутентификацию на основе PKI, необходимо настроить настройки ключа SSL для Watcher в elasticsearch.yml.
Параметры запроса
Параметры запроса можно указать для отправки с помощью поля params. Это поле просто содержит объект, где ключи служат именами параметров, а значения — значениями параметров:
"actions" : {
"my_webhook" : {
"webhook" : {
"method" : "POST",
"host" : "mylisteningserver",
"port" : 9200,
"path": "/alert",
"params" : {
"watch_id" : "{{ctx.watch_id}}"
}
}
}
} | Значения параметров могут содержать шаблонные строки. |
Настраиваемые заголовки запроса
Заголовки запроса можно указать для отправки с помощью поля headers. Это поле просто содержит объект, где ключи служат именами заголовков, а значения — значениями заголовков:
"actions" : {
"my_webhook" : {
"webhook" : {
"method" : "POST",
"host" : "mylisteningserver",
"port" : 9200,
"path": "/alert/{{ctx.watch_id}}",
"headers" : {
"Content-Type" : "application/yaml"
},
"body" : "count: {{ctx.payload.hits.total}}"
}
}
} | Значения заголовков могут содержать шаблонные строки. |
Атрибуты действия webhook
| Имя | Требуется | По умолчанию | Описание |
|---|---|---|---|
| нет | http | Схема подключения. Допустимые значения: |
| да | - | Хост для подключения. |
| да | - | Порт, на котором работает HTTP-сервис. |
| нет | - | Путь к URL. Путь может быть статическим текстом или включать шаблоны Mustache. Параметры строки запроса URL необходимо указывать через атрибут |
| нет | get | HTTP-метод. Допустимые значения: |
| нет | - | Заголовки HTTP-запроса. Значения заголовков могут быть статическим текстом или включать шаблоны Mustache. |
| нет | - | Параметры строки запроса URL. Значения параметров могут быть статическим текстом или включать шаблоны Mustache. |
| нет | - | Заголовки HTTP, связанные с аутентификацией. В настоящее время поддерживается только базовая аутентификация. |
| нет | - | Тело HTTP-запроса. Тело может быть статическим текстом или включать шаблоны Mustache. Если не указано, отправляется пустое тело. |
| нет | - | Прокси-хост для подключения к хосту. |
| нет | - | Прокси-порт для подключения к хосту. |
| нет | 10с | Таймаут для настройки http-соединения. Если соединение не может быть установлено в течение этого времени, действие будет иметь таймаут и завершится ошибкой. |
| нет | 10с | Таймаут для чтения данных из http-соединения. Если ответ не был получен в течение этого времени, действие будет иметь таймаут и завершится ошибкой. |
| нет | - | Сокращённая запись для указания схемы запроса, хоста, порта и пути как одной строки. Например, |
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/actions-webhook.html
|
|