创建规则 API编辑

创建 Kibana 规则。

有关最新 API 详细信息,请参阅 开放 API 规范

请求编辑

POST <kibana 主机>:<端口>/api/alerting/rule/<id>

POST <kibana 主机>:<端口>/s/<空间 ID>/api/alerting/rule/<id>

先决条件编辑

您必须对相应的 Kibana 功能拥有 all 权限,具体取决于您创建的规则的 consumerrule_type_id。例如,管理 > 堆栈规则 功能,分析 > 发现机器学习 功能,可观察性安全 功能。如果规则具有 actions,您还必须对 管理 > 操作和连接器 功能拥有 read 权限。有关更多详细信息,请参阅 功能权限

路径参数编辑

<id>
(可选,字符串) 指定 UUID v1 或 v4 以代替随机生成的 ID。
space_id
(可选,字符串) 空间的标识符。如果 URL 中未提供 space_id,则使用默认空间。

请求正文编辑

actions

(可选,对象数组) 操作对象的数组。

操作对象属性
group
(必需,字符串) 建议对不同类型警报的升级进行分组操作。如果您不需要此功能,请将此值设置为 default
id
(必需,字符串) 连接器保存对象的 ID,您可以使用 获取所有连接器 获取。
params
(必需,对象) 到 params 的映射,连接器类型 将接收。` params` 被视为 Mustache 模板,并传递一组默认上下文。
consumer
(必需,字符串) 拥有规则的应用程序或功能的名称。例如:alertsapmdiscoverinfrastructurelogsmetricsmlmonitoringsecuritySolutionsiemstackAlertsuptime
enabled
(可选,布尔值) 指示您是否希望在创建规则后按间隔运行规则。
name
(必需,字符串) 规则的名称。虽然此名称不必唯一,但有区别的名称可以帮助您识别规则。
notify_when

(必需,字符串) 定义警报生成操作的频率。有效值为

  • onActionGroupChange:警报状态更改时运行操作。
  • onActiveAlert:警报变为活动状态时运行操作,并在规则条件满足时在每个检查间隔运行。
  • onThrottleInterval:警报变为活动状态时运行操作,并在规则条件满足时在 throttle 属性中指定的间隔运行。
params
(必需,对象) 要传递给规则类型执行器 params 值的参数。这还将根据规则类型参数验证器进行验证(如果定义)。
rule_type_id
(必需,字符串) 您希望在计划运行规则时调用的规则类型的 ID。例如,.es-query.index-thresholdlogs.alert.document.countmonitoring_alert_cluster_healthsiem.thresholdRulexpack.ml.anomaly_detection_alert。有关更多信息,请参阅 规则类型
schedule
(必需,对象) 检查间隔,指定检查规则条件的频率。间隔必须以秒、分钟、小时或天为单位指定。例如:{ "interval": "10s" }{ "interval": "5m" }{ "interval": "1h" }{ "interval": "1d" }
tags
(可选,字符串数组) 应用于规则的标签名称列表。
throttle
(可选,字符串) 定义警报生成重复操作的频率。此自定义操作间隔必须以秒、分钟、小时或天为单位指定。例如,10m1h。此属性仅在 notify_whenonThrottleInterval 时使用。

响应代码编辑

200
表示成功调用。

示例编辑

创建一个与服务器日志连接器关联的操作的 索引阈值规则

POST api/alerting/rule
{
  "params":{
      "aggType":"avg",
      "termSize":6,
      "thresholdComparator":">",
      "timeWindowSize":5,
      "timeWindowUnit":"m",
      "groupBy":"top",
      "threshold":[
         1000
      ],
      "index":[
         ".test-index"
      ],
      "timeField":"@timestamp",
      "aggField":"sheet.version",
      "termField":"name.keyword"
   },
   "consumer":"alerts",
   "rule_type_id":".index-threshold",
   "schedule":{
      "interval":"1m"
   },
   "actions":[
      {
         "id":"dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2",
         "group":"threshold met",
         "params":{
            "level":"info",
            "message":"Rule '{{rule.name}}' is active for group '{{context.group}}':\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}"
         }
      }
   ],
   "tags":[
      "cpu"
   ],
   "notify_when":"onActionGroupChange",
   "name":"my alert"
}

API 返回以下内容

{
  "id": "41893910-6bca-11eb-9e0d-85d233e3ee35",
  "consumer": "alerts",
  "tags": ["cpu"],
  "name": "my alert",
  "enabled": true,
  "throttle": null,
  "schedule": {"interval": "1m"},
  "params": {
    "aggType": "avg",
    "termSize": 6,
    "thresholdComparator": ">",
    "timeWindowSize": 5,
    "timeWindowUnit": "m",
    "groupBy": "top",
    "threshold": [1000],
    "index": [".test-index"],
    "timeField": "@timestamp",
    "aggField": "sheet.version",
    "termField": "name.keyword"
  },
  "rule_type_id": ".index-threshold",
  "scheduled_task_id": "425b0800-6bca-11eb-9e0d-85d233e3ee35",
  "created_by": "elastic",
  "updated_by": "elastic",
  "created_at": "2022-06-08T17:20:31.632Z",
  "updated_at": "2022-06-08T17:20:31.632Z",
  "api_key_owner": "elastic",
  "notify_when": "onActionGroupChange",
  "mute_all": false,
  "muted_alert_ids": [],
  "execution_status": {
    "last_execution_date": "2022-06-08T17:20:31.632Z",
    "status": "pending"
  },
  "actions": [
    {
      "group": "threshold met",
      "id": "dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2",
      "params": {
        "level": "info",
        "message": "Rule {{rule.name}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}"
      },
      "connector_type_id": ".server-log"
    }
  ]
}