#rest #kibana #monitoring #elastic-stack #elk
Вопрос:
У меня есть ELK cloud v. 7.13.2, и я пытаюсь создать правило оповещения с помощью действия slack через REST API. Это мой призыв к завитку:
curl -u ****** -s -H 'kbn-xsrf: true' -H 'Content-Type: application/json' https://***********.westeurope.azure.elastic-cloud.com:9243/api/alerting/rule -X POST -d @src/rules/cpu_utilization.json
Я ожидаю, что будет создано новое правило, но, к сожалению, я получаю следующую ошибку:
{
"statusCode": 400,
"error": "Bad Request",
"message": "Invalid action groups: default"
}
Содержимое src/правила/cpu_utilization.json являются:
{
"params": {
"nodeType": "host",
"criteria": [
{
"comparator": ">",
"timeSize": 1,
"metric": "cpu",
"threshold": [
80
],
"timeUnit": "m"
}
],
"sourceId": "default"
},
"consumer": "alerts",
"schedule": {
"interval": "1m"
},
"tags": [],
"name": "CPU2",
"throttle": "1000d",
"enabled": true,
"rule_type_id": "metrics.alert.inventory.threshold",
"notify_when": "onThrottleInterval",
"actions": [
{
"group": "default",
"id": "fce4c27f-d22a-4209-858c-253a06511c1b",
"params": {
"message": "{{alertName}} - {{context.group}} is in a state of {{context.alertState}}nnReason:n{{context.reason}}"
}
}
]
}
В документации четко сказано:
Properties of the action objects:
group
(Required, string) Grouping actions is recommended for escalations for different types of alerts. If you don’t need this, set this value to default.
Это ошибка в ELK или я делаю что-то не так? Я могу использовать API для других целей, таких как правила перечисления, правила удаления и т.д. Я также способен создавать правило без действия, но это не кажется слишком полезным…
Ответ №1:
Хорошо, я получил ответ от службы поддержки ELK. По-видимому, вы можете использовать другую конечную точку для перечисления всех типов правил GET /api/alerting/rule_types
. Затем вам нужно найти свой тип и свойство поиска default_action_group_id
— оно будет содержать правильное значение. Например, в приведенном выше примере это было:
"default_action_group_id": "metrics.inventory_threshold.fired"