Использование REST API для создания правила оповещения в Кибане завершается ошибкой 400 «Недопустимые группы действий: по умолчанию».

#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"