创建规则 API
编辑创建规则 API编辑
创建 Kibana 规则。
有关最新 API 详细信息,请参阅 开放 API 规范。
请求编辑
POST <kibana 主机>:<端口>/api/alerting/rule/<id>
POST <kibana 主机>:<端口>/s/<空间 ID>/api/alerting/rule/<id>
先决条件编辑
您必须对相应的 Kibana 功能拥有 all
权限,具体取决于您创建的规则的 consumer
和 rule_type_id
。例如,管理 > 堆栈规则 功能,分析 > 发现 和 机器学习 功能,可观察性 和 安全 功能。如果规则具有 actions
,您还必须对 管理 > 操作和连接器 功能拥有 read
权限。有关更多详细信息,请参阅 功能权限。
路径参数编辑
-
<id>
- (可选,字符串) 指定 UUID v1 或 v4 以代替随机生成的 ID。
-
space_id
- (可选,字符串) 空间的标识符。如果 URL 中未提供
space_id
,则使用默认空间。
请求正文编辑
-
actions
-
(可选,对象数组) 操作对象的数组。
-
consumer
- (必需,字符串) 拥有规则的应用程序或功能的名称。例如:
alerts
、apm
、discover
、infrastructure
、logs
、metrics
、ml
、monitoring
、securitySolution
、siem
、stackAlerts
或uptime
。 -
enabled
- (可选,布尔值) 指示您是否希望在创建规则后按间隔运行规则。
-
name
- (必需,字符串) 规则的名称。虽然此名称不必唯一,但有区别的名称可以帮助您识别规则。
-
notify_when
-
(必需,字符串) 定义警报生成操作的频率。有效值为
-
onActionGroupChange
:警报状态更改时运行操作。 -
onActiveAlert
:警报变为活动状态时运行操作,并在规则条件满足时在每个检查间隔运行。 -
onThrottleInterval
:警报变为活动状态时运行操作,并在规则条件满足时在throttle
属性中指定的间隔运行。
-
-
params
- (必需,对象) 要传递给规则类型执行器
params
值的参数。这还将根据规则类型参数验证器进行验证(如果定义)。 -
rule_type_id
- (必需,字符串) 您希望在计划运行规则时调用的规则类型的 ID。例如,
.es-query
、.index-threshold
、logs.alert.document.count
、monitoring_alert_cluster_health
、siem.thresholdRule
或xpack.ml.anomaly_detection_alert
。有关更多信息,请参阅 规则类型。 -
schedule
- (必需,对象) 检查间隔,指定检查规则条件的频率。间隔必须以秒、分钟、小时或天为单位指定。例如:
{ "interval": "10s" }
、{ "interval": "5m" }
、{ "interval": "1h" }
或{ "interval": "1d" }
。 -
tags
- (可选,字符串数组) 应用于规则的标签名称列表。
-
throttle
- (可选,字符串) 定义警报生成重复操作的频率。此自定义操作间隔必须以秒、分钟、小时或天为单位指定。例如,
10m
或1h
。此属性仅在notify_when
为onThrottleInterval
时使用。
响应代码编辑
-
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" } ] }