ALIYUN::SLS::Alert类型用于创建告警。
语法
{
"Type": "ALIYUN::SLS::Alert",
"Properties": {
"Project": String,
"Detail": Map
}
}属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Project | String | 是 | 否 | 日志项目名称。 | 无 |
| Detail | Map | 是 | 是 | 告警详情。 | 更多信息,请参见Detail属性。 |
Detail语法
"Detail": {
"Type": String,
"Description": String,
"Configuration": Map,
"State": String,
"Schedule": Map,
"DisplayName": String,
"Name": String
}Detail属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Type | String | 否 | 否 | 告警类型。 | 无 |
| Description | String | 否 | 是 | 告警描述信息。 | 无 |
| Configuration | Map | 是 | 是 | 告警配置。 | 更多信息,请参见Configuration属性。 |
| State | String | 否 | 否 | 是否启用告警。 | 取值:
|
| Schedule | Map | 是 | 是 | 日志服务评估警报规则的时间间隔。 | 在警报规则评估期间,如果查询返回的日志条目超过100个,则只检查前100个日志条目。 更多信息,请参见Schedule属性。 |
| DisplayName | String | 是 | 是 | 告警显示的名称。 | 长度为1~64个字符。 |
| Name | String | 是 | 否 | 告警名称。 | 无 |
Configuration语法
"Configuration": {
"Throttling": String,
"Condition": String,
"NotificationList": List,
"NotifyThreshold": Integer,
"Dashboard": String,
"QueryList": List,
"Type": String,
"GroupConfiguration": Map,
"NoDataFire": Boolean,
"Threshold": Integer,
"SeverityConfigurations": List,
"Labels": List,
"AutoAnnotation": Boolean,
"PolicyConfiguration": Map,
"SendResolved": Boolean,
"NoDataSeverity": Integer,
"Annotations": List,
"MuteUntil": Integer,
"JoinConfigurations": List,
"Version": String
}Configuration属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Throttling | String | 否 | 是 | 通知间隔。 | 无 |
| Condition | String | 否 | 是 | 触发条件。 | 支持加( )、减(-)、乘(*)、除(/)、取模(%)5种基础运算符和大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)、不等于(!=)、正则匹配 (=~)、 正则不匹配(!~)8种比较运算符。 更多信息,请参见告警条件表达式语法。 |
| NotificationList | List | 否 | 是 | 通知列表。 | 更多信息,请参见NotificationList属性。 |
| NotifyThreshold | Integer | 否 | 是 | 触发通知阈值。 | 无 |
| Dashboard | String | 是 | 是 | 所属仪表盘。 | 无 |
| QueryList | List | 是 | 是 | 查询列表。 | 更多信息,请参见QueryList属性。 |
| Type | String | 否 | 是 | 告警类型。 | 固定值:default。 |
| GroupConfiguration | Map | 否 | 是 | 分组评估配置。 | 更多信息,请参见GroupConfiguration属性。 |
| NoDataFire | Boolean | 否 | 是 | 无数据是否触发告警。 | 取值:
|
| Threshold | Integer | 否 | 是 | 设置连续触发阈值。 | 当累计的触发次数达到该值时,产生一条告警。不满足触发条件时不计入统计。 |
| SeverityConfigurations | List | 否 | 是 | 触发条件,至少设置一条触发条件。 | 更多信息,请参见SeverityConfigurations属性。 |
| Labels | List | 否 | 是 | 标签。 | 更多信息,请参见Labels属性。 |
| AutoAnnotation | Boolean | 否 | 是 | 是否开启自动添加标注。 | 取值:
|
| PolicyConfiguration | Map | 否 | 是 | 告警策略配置。 | 更多信息,请参见PolicyConfiguration属性。 |
| SendResolved | Boolean | 否 | 是 | 是否发送恢复通知。 | 取值:
|
| NoDataSeverity | Integer | 否 | 是 | 无数据触发告警时的告警严重度。 | 更多信息,请参见告警严重度。 |
| Annotations | List | 否 | 是 | 标注。 | 更多信息,请参见Annotations属性。 |
| MuteUntil | Integer | 否 | 是 | 告警触发阈值。 | 无 |
| JoinConfigurations | List | 否 | 是 | 集合操作配置。 | 更多信息,请参见JoinConfigurations属性。
|
| Version | String | 否 | 是 | 告警版本。 | 固定值:2.0。 |
NotificationList语法
"NotificationList": [
{
"Type": String,
"MobileList": List,
"ServiceUri": String,
"Content": String,
"EmailList": List,
"Method": String,
"Headers": Map
}
]NotificationList属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Type | String | 是 | 否 | 通知类型。 | 取值:
|
| Content | String | 否 | 否 | 通知内容。 | 支持使用模板变量:${Project}, ${Condition}, ${AlertName}, ${AlertID}, ${Dashboard}, ${FireTime}, ${Results}。更多信息,请参见通知方式。 |
| MobileList | List | 否 | 否 | 手机号码。 | 通知类型为短信、语音时该参数必填。 同一手机号码每天接收的通知不超过50条。 |
| ServiceUri | String | 否 | 否 | 请求地址。 | 通知类型为WebHook-自定义或WebHook-钉钉机器人时该参数必填。 |
| EmailList | List | 否 | 否 | 邮件地址。 | 通知类型为电子邮件时该参数必填。 同一邮箱每天接收的邮件不超过100条。 |
| Method | String | 否 | 否 | 请求的方法。 | 无 |
| Headers | Map | 否 | 否 | 请求头信息。 | 无 |
QueryList语法
"QueryList": [
{
"Query": String,
"LogStore": String,
"Start": String,
"TimeSpanType": String,
"End": String,
"ChartTitle": String,
"DashboardId": String,
"Region": String,
"RoleArn": String,
"StoreType": String,
"PowerSqlMode": String,
"Project": String,
"Store": String
}
]QueryList属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Query | String | 是 | 否 | 查询语句。 | 无 |
| LogStore | String | 否 | 否 | 日志库。 | 无 |
| Start | String | 是 | 否 | 查询开始时间。 | 无 |
| TimeSpanType | String | 是 | 否 | 查询区间。 | 无 |
| End | String | 是 | 否 | 查询结束时间。 | 无 |
| ChartTitle | String | 否 | 否 | 图表标题。 | 无 |
| DashboardId | String | 否 | 否 | 告警仪表盘ID。 | 无 |
| Region | String | 否 | 否 | 查询Project所在地域。 | 无 |
| RoleArn | String | 否 | 否 | 访问数据所需的RAM角色的ARN。 | 更多信息,请参见跨Project监控数据授权。 |
| StoreType | String | 否 | 否 | 数据源类型。 | 取值:
|
| PowerSqlMode | String | 否 | 否 | 是否使用独享SQL。 | 取值:
|
| Project | String | 否 | 否 | 所关联的Project。 | 无 |
| Store | String | 否 | 否 | 所关联的Logstore、Metricstore或资源数据。 | 无 |
Schedule语法
"Schedule": {
"Type": String,
"Interval": String,
"Hour": Integer,
"DayOfWeek": Integer,
"CronExpression": String,
"Delay": Integer,
"RunImmediately": Boolean
}Schedule属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Type | String | 是 | 是 | 类型。 | 取值:
|
| Interval | String | 否 | 是 | 触发周期。 | 当Type取值为FixedRate时,该参数必须指定。 取值示例:
|
| Hour | Integer | 否 | 是 | 触发时间。 | 当Type取值为Daily或Weekly时,该参数必须指定。 取值范围:0~23。 |
| DayOfWeek | Integer | 否 | 是 | 触发时间(星期)。 | 当Type取值为Weekly时,该参数必须指定。 取值范围:1~7。 |
| CronExpression | String | 否 | 是 | Cron表达式。 | 当Type取值为Cron时,该参数必须指定。 |
| RunImmediately | Boolean | 否 | 是 | 是否立即触发。 | 取值:
|
| Delay | Integer | 否 | 是 | 延迟触发。 | 无 |
SeverityConfigurations语法
"SeverityConfigurations": {
"EvalCondition": Map,
"Severity": Integer
}SeverityConfigurations属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| EvalCondition | Map | 否 | 否 | 触发条件。 | 更多信息,请参见EvalCondition属性。 |
| Severity | Integer | 是 | 否 | 告警严重度。 | 更多信息,请参见告警严重度 取值 Critical(严重) 10 High(高) 8 Medium(中) 6 Low(低) 4 Report(报告) 2。 |
EvalCondition语法
"EvalCondition": {
"Condition": String,
"CountCondition": String
}EvalCondition属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Condition | String | 否 | 否 | 数据匹配表达式。 |
|
| CountCondition | String | 否 | 否 | 数据条数判断表达式。 |
|
Labels语法
"Labels": [{
"Value": String,
"Key": String
}]Labels属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Value | String | 是 | 否 | 字段值。 | 无 |
| Key | String | 是 | 否 | 字段名称。 | 无 |
GroupConfiguration语法
"GroupConfiguration": {
"Type": String,
"Fields": List
}GroupConfiguration属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Type | String | 是 | 否 | 分组评估类型。 | 取值:
|
| Fields | List | 否 | 否 | 用于分组评估的字段。 | 无 |
Annotations语法
"Annotations": [{
"Value": String,
"Key": String
}]Annotations属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Key | String | 是 | 否 | 字段名称。 | 无 |
| Value | String | 是 | 否 | 字段值。 | 无 |
JoinConfigurations语法
"JoinConfigurations": {
"Type": String,
"Condition": String
}JoinConfigurations属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| Condition | String | 否 | 否 | 条件表达式。 | 当type取值为cross_join、concat或no_join时,必须设置该参数。例如:$0.host == $1.ip。 |
| Type | String | 是 | 否 | 集合操作类型。 | 取值:
|
PolicyConfiguration语法
"PolicyConfiguration": {
"RepeatInterval": String,
"ActionPolicyId": String,
"AlertPolicyId": String,
"UseDefault": Boolean
}PolicyConfiguration属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
| RepeatInterval | String | 否 | 否 | 重复等待时间。 | 无 |
| ActionPolicyId | String | 否 | 否 | 使用的行动策略ID。 | 如果是高级模式且所选的告警策略未配置动态行动策略,则设置ActionPolicyId为空字符串。 |
| AlertPolicyId | String | 否 | 否 | 告警策略ID。 |
|
| UseDefault | Boolean | 否 | 否 | 兼容字段。 | 固定值:false。 |
返回值
Fn::GetAtt
Name:告警名称。
示例
JSON格式{ "ROSTemplateFormatVersion": "2015-09-01", "Parameters": { }, "Resources": { "Alert": { "Type": "ALIYUN::SLS::Alert", "Properties": { "Project": "TestSlsProject", "Detail": { "DisplayName": "ros-test-alert", "Description": "test", "Schedule": { "Delay": 1, "Interval": "15m", "Type": "FixedRate", "RunImmediately": false }, "State": "Enabled", "Configuration": { "Throttling": "5m", "NotifyThreshold": 1, "QueryList": [ { "End": "now", "LogStore": "audit-cf5362d1f87754fb29", "ChartTitle": "k8s-log-c7b729e7ea122425182133bc2c3ea", "Start": "-15m", "Query": "objectRef.resource : \"networkpolicies\" and verb : create NOT user.username: node NOT user.username: serviceaccount NOT user.username: apiserver NOT user.username: kube-scheduler NOT user.username: kube-controller-manager | SELECT auditID as \"事件ID\", date_format(from_unixtime(__time__), '%Y-%m-%d %T' ) as \"操作时间\", \"objectRef.name\" as \"Name\", \"objectRef.namespace\" as \"Namespace\", \"responseStatus.code\" as \"状态码\",\n CASE WHEN \"user.username\" != 'kubernetes-admin' then \"user.username\"\n WHEN \"user.username\" = 'kubernetes-admin' and regexp_like(\"annotations.authorization.k8s.io/reason\", 'RoleBinding') then regexp_extract(\"annotations.authorization.k8s.io/reason\", ' to User \"(\\w+)\"', 1) ELSE 'kubernetes-admin' END \n as \"操作账号\", \nCASE WHEN json_array_length(sourceIPs) = 1 then json_format(json_array_get(sourceIPs, 0)) ELSE sourceIPs END\nas \"源地址\" order by \"操作时间\"", "TimeSpanType": "Custom" } ], "Dashboard": "audit-cf5362d1f87754fb4a_network_policy_op_cn", "NotificationList": [ { "Content": "Message", "ServiceUri": "http://xxxx", "Type": "DingTalk" }, { "Content": "Email Message", "EmailList": [ "abc@test.com" ], "Type": "Email" }, { "MobileList": [ "132373830xx" ], "Content": "Cellphone message", "Type": "SMS" } ], "Condition": "total > 1" }, "Type": "Alert", "Name": "alert_2" } } } }, "Outputs": { "Name": { "Description": "Alert name.", "Value": { "Fn::GetAtt": [ "Alert", "Name" ] } } } }
该文章对您有帮助吗?