Действие webhook Watcher
Используйте действие 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}}"
}
}
} | Идентификатор действия | |
| Необязательное преобразование transform для преобразования полезной нагрузки перед выполнением действия | |
| Необязательный период ожидания для действия (5 минут в этом примере) | |
| HTTP-метод для подключения к хосту | |
| Хост для подключения | |
| Порт для подключения | |
| Путь (URI) для использования в HTTP-запросе | |
| Тело для отправки с запросом |
При отправке запроса на защищённый веб-сервис можно использовать аутентификацию по протоколу Basic. Например, следующее действие 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 может зашифровать пароль перед его сохранением.
Также можно использовать аутентификацию на основе PKI при отправке запросов в кластер, в котором включены функции безопасности Elasticsearch. При использовании аутентификации на основе PKI вместо аутентификации по протоколу Basic вам не нужно хранить какую-либо информацию об аутентификации в самом наблюдении. Для использования аутентификации на основе 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, связанные с аутентификацией. В настоящее время поддерживается только аутентификация по протоколу Basic. |
| нет | - | Тело 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/7.17/actions-webhook.html
|
|