创建告警
步骤
- 打开 "告警" 页面
- 点击页面右上角的
新建告警
按钮,弹出下图中所示的 "新建告警" 对话框。创建告警需要'告警页面'和'新建资源'权限,具体的内容参考权限管理 - 输入告警的四部分配置(标题不必唯一)
告警标题在创建后可以修改
配置
基础设置
标题
告警的标题
描述
告警的描述
查询
查询语句的内容为炎凰数据平台所支持的 SQL查询,也可直接从预存查询导入语句和时间范围
时间范围
查询的时间范围可以选择相对时间范围或固定时间范围。通常情况下应该使用相对时间范围,如过去五分钟、过去一小时等等。 对于使用相对时间范围的查询,每次查询时使用的时间范围会从查询被执行的时间点开始计算相对的时间区间;如果使用固定时间范围,则每次查询的时间区间的起始时间点都相同。
执行计划
执行计划
执行计划规定了查询被周期性执行的时间点,采用 Cron 时间格式,例如:
Cron表达式 | 说明 |
---|---|
*/5 * * * * | 每五分钟执行 |
0 * * * * | 每个小时整点执行 |
时区选择
用户可以根据自己所在时区或者任务目标时区进行自由合理选取:
延迟
查询被执行的时间点还可以通过设置 "延迟" 进行微调。 比如考虑到从数据源产生数据的时间点距离数据进入数据平台并可以被查询的时间点之间存在五秒种的延迟,那么可以通过设置五秒中延迟来推迟查询的执行(但是查询所使用的时间区间并不会受延迟的影响)。
触发条件
触发条件模块中包括三项设置:触发条件、严重性、告警抑制
触发条件:告警的触发条件是告警是否应该被触发的判断条件,有两种触发条件可供选择:
预设条件:预设的触发条件基本可以满足大部分常用的触发场景,如根据查询结果的条数(count)判断是否应该触发告警。
自定义条件:自定义的触发条件则是针对查询结果中的某个特定字段的值判断是否应该触发告警。对于查询结果的条数大于一的情况,可以使用各种聚合函数计算出该字段的最终值用作判断条件;如果查询结果的条数大于一,但不使用聚合函数时,第一条查询结果的字段值将被用作判断条件。
严重性:告警的严重性级别,有四种级别可供选择:
低
、中
、高
、严重
。告警抑制:告警抑制是为了避免在短时间内频繁触发告警,有四种告警抑制方式可供选择:
- 无:不对告警进行抑制。
- 按时间:在指定的时间段内,只执行一次告警动作。
- 按次数:连续设定次满足触发条件后,才执行告警动作。
- 按时间与次数:在指定的时间段内,累计设定次数满足触发条件后只执行一次告警动作。
触发动作
动作
从平台内置或自定义的通知渠道中选择接收告警的渠道,并完成所选择的通知渠道配置。
严重性
您可以设置告警严重性级别。严重性级别有助于在"触发记录"页面中的告警触发记录进行排序或筛选。
限制
为避免频繁执行的告警发送大量重复的通知,可以限制同一个告警发送的通知数量。 当限制被打开时,如果告警被第一次触发,则会立刻发送通知。但是在发送第一次通知之后指定的时间段里,系统不会再发送相同的通知。 直至时间段过完,并且告警再次被触发时,才会再次发送通知,同时新一轮的限制被打开。
通知渠道配置
邮件
使用邮件通知告警时,可以指定邮件的接收者、标题、正文等:
使用邮件前,先要由系统管理员完成相关的配置,如SMTP服务器连接、通知邮件发送者等
如何配置邮件服务?详见邮件设置
正文模式为“纯文本”时,邮件内容将以纯文本形式发送,内部所有HTML特殊字符将被转义;正文模式为“HTML”时,邮件内容将以HTML的形式发送,保留所有HTML特殊字符。
邮件的标题和正文部分除了可以被设置为固定内容外,用户还可以使用Token将告警的执行信息带入邮件的标题和正文,为响应者提供更加精确的告警信息:
Token格式 | 说明 | 使用示例 |
---|---|---|
{{token名}} | 两层花括号 + token名 + 两层反花括号 | 在邮件标题中使用查询结果中host字段的值:服务器 {{search.result.host}} CPU利用率异常 可用Token请参考 Token清单 |
Webhook
Webhook给用户提供了一种通过第三方API提供商(比如slack/teams等IM工具)发送告警的能力。用户可以配置供应商网址,请求方式,验证方式等参数:
标头(headers)和负载(payload)的输入必须是合法的JSON格式,比如
- 标头:
{ "Content-Type": "application/json" }
- 负载:
{ "text": "Hello, world." }
如何在第三方软件上配置Webhook?Webhook配置
自定义渠道
自定义渠道来源于自定义应用。
新建应用,并选择带有自定义渠道的应用。
在告警的触发动作中选择自定义的触发动作,并填写触发动作需要的基本信息。
Token清单
查询结果相关Token
名称 | 例值 | 描述 |
---|---|---|
search.result.* | - | 查询结果中的字段值可以通过 search.result.字段名 获得,比如 search.result.host 表示查询结果中host字段的值 |
查询执行相关Token
名称 | 示例 | 说明 |
---|---|---|
execution.flowId | ALERT - 49101d62-3efd-4cab-b84e-0d9703bb1ea2 | 本次监测告警任务所属告警的唯一标识符 |
execution.flowRunId | ec9cf5b6-1a6b-4ea3-8cb6-3b134f994ab0 | 本次监测告警任务执行的唯一标识符 |
execution.startTime | 2020-09-17T18:12:39.683475+08:00 | 本次监测告警任务执行的开始时间点 |
execution.endTime | 2020-09-17T18:12:41.002609+08:00 | 本次监测告警任务执行的结束时间点 |
execution.duration | 1319134 | 本次监测告警任务执行的时长,单位/微秒 |
execution.callbackBaseUrl | https://www.example.com.cn | 本次监测告警所运行的环境的链接根URL |
execution.callbackUrl | https://www.example.com.cn/zh-CN/app/test/alerts/39c80fc7-23df-4b9f-987a-3d1f7f278533?flowRunId=464dad5f-2ba8-4623-963d-6ff0f79b867d | 本次监测告警详情页面的链接 |
search.execution.searchStartTime | 2020-09-17T18:12:39.734908+08:00 | 本次监测告警任务中查询的开始时间点 |
search.execution.searchEndTime | 2020-09-17T18:12:40.945788+08:00 | 本次监测告警任务中查询的结束时间点 |
search.execution.searchDuration | 1210880 | 本次监测告警任务中查询的时长,单位/微秒 |
search.execution.searchJobId | 952bfd3c-39dd-499c-9c23-2eaa0858f366 | 本次监测告警任务中查询的jobID |
search.execution.searchEventCount | 10 | 本次监测告警任务中查询结果的数量 |
search.execution.filterDuration | 543 | 本次监测告警任务中应用触发条件执行的时长,单位/微秒 |
search.execution.filterEventCount | 3 | 本次监测告警任务中符合触发条件的结果的数量 |
告警配置相关Token
名称 | 示例 | 说明 |
---|---|---|
config.title | - | 告警的名称 |
config.description | - | 告警的描述 |
config.conditions.query | SELECT * FORM app_log WHERE level = 'FATAL' | 告警中执行的查询语句 |
config.conditions.earliestTime | 3600 | 告警中执行的查询时间范围的起始时间点 |
config.conditions.latestTime | now | 告警中执行的查询时间范围的结束时间点 |
config.schedule.cron | /10 * * * | 告警执行计划的Cron表达式 |
config.schedule.delay | 10 | 告警执行计划的延迟时间,单位/秒 |