多图表查询结果应用于告警检测和告警通知
在配置告警时,经常需要使用多张图表的查询结果。您可以将首张图表的查询结果用于告警检测规则,同时将其他图表的查询结果打印到告警通知消息中。
例如,您希望监控日志级别为ERROR的日志,当5分钟内出现10条日志级别为ERROR的日志,即触发“紧急”告警。并在邮件正文通知中打印错误日志的查询结果,包括日志的级别(level),编号(num),报错信息(message)。
在创建告警规则时,您可以添加两张图表:

- 第一张图表(编号为0):查询日志级别为ERROR的日志条数,用于检测规则的条件表达式。
- 第二张图表(编号为1):查询错误日志的level、num及message等详细信息,用于打印到告警邮件正文通知。
您可以参考以下操作步骤完成该场景的告警配置。
操作视频
创建消息模板
消息模板是告警通知消息的固定格式,使用消息模板发送告警通知消息时,系统会自动将模板变量替换为告警规则中的内容。您可以在邮件正文中添加如下语句,告警通知中会打印出错误日志的查询结果。
查询日志:$event.annotations.results[1].raw_results
- 登录云日志服务控制台。
- 左侧导航选择“日志告警”。
- 单击“告警通知规则”。
- 选择“消息模板”页签,单击“创建”,在界面右侧弹出“创建消息模板”页面。
- 参考表1配置相关参数。
图2 消息模板
表1 消息模板参数说明 参数名称
样例
参数说明
模板名称
多表查询
消息模板的名称。
输入内容只能是数字、字母、下划线、汉字、中划线,且不能以下划线、中划线等特殊符号开头和结尾。长度不能超过100个字符。
模板描述
-
对消息模板的描述。
输入内容只能是数字、字母、下划线、汉字,且不能以下划线等特殊符号开头和结尾。长度不能超过1024个字符。
消息头语言
中文(简体)
系统在发送消息时会默认添加消息头,中文如:“尊敬的用户...”。
通知方式
邮件
消息的通知方式类型。
主题
华为云LTS服务通知:[${region_name}]与${starts_at}运维通知。
邮件消息的主题。支持自定义主题名称和使用变量命名主题两种方式。
主题名称长度不能超过512个字符。
变量:
- 发生区域:${region_name}
- 发生时间:${starts_at}
正文
华为云账号:${domain_name};
告警规则:<a href="$event.annotations.alarm_rule_url ">${event_name}</a>;
告警状态:$event.annotations.alarm_status;
告警级别:${event_severity};
发生时间:${starts_at};
表达式:$event.annotations.condition_expression;
当前值:$event.annotations.current_value;
统计周期:$event.annotations.frequency;
日志组/流名称:$event.annotations.results[1].resource_id;
查询语句:$event.annotations.results[1].sql;
查询URL:<a href="$event.annotations.results[1].url ">详情</a>;
查询日志:$event.annotations.results[1].raw_results;
邮件消息的正文,可以在自定义描述中插入变量。
变量:
- 华为云账号:${domain_name}
- 告警规则详细信息链接:$event.annotations.alarm_rule_url
- 告警规则原始名称:${event_name}
- 告警级别:${event_severity}
- 发生时间:${starts_at}
- 告警规则触发条件表达式:$event.annotations.condition_expression
- 条件表达式当前值:$event.annotations.current_value
- 统计周期:$event.annotations.frequency
- 打印用于查询错误日志详细信息的第二张图表(编号为1)的日志组/流名称:$event.annotations.results[1].resource_id
- 打印用于查询错误日志详细信息的第二张图表(编号为1)的查询URL,单击详情可以跳转到对应的日志流详情页:$event.annotations.results[1].url
- 打印用于查询错误日志详细信息的第二张图表(编号为1)的查询日志结果:$event.annotations.results[1].raw_results
- 配置完成后,单击“确定”。
创建告警通知规则
告警通知规则用于关联消息通知服务SMN主题和消息模板,当触发告警后,自动根据消息模板内容以邮件形式发送告警通知。
- 登录云日志服务控制台。
- 在左侧导航栏中选择“日志告警”。
- 单击“告警通知规则”。
- 在“告警通知规则”页签,单击“创建”。参考表2配置相关参数。
图3 告警通知规则
表2 告警通知规则参数说明 参数名称
样例
参数说明
通知规则名称
错误日志打印邮件通知
自定义通知规则名称,创建成功后不支持修改。命名要求如下:
只能由数字、字母、中文、下划线、中划线组成,且不能以下划线、中划线开头结尾,长度为1到64个字符。
企业项目
default
选择已创建的企业项目。
如果当前账号未开通企业项目则不显示该参数。
描述
-
自定义通知规则的描述,字符长度0-1024个字符。
主题
LTS
选择已创建的SMN主题。
在SMN界面创建主题,主题名称命名为LTS,主题创建成功后为该主题添加订阅,即邮件通知的接收人。
创建主题的详细操作请参考创建主题。
订阅主题的详细操作请参考订阅主题。
消息模板
多表查询
通知消息的模板,请从下拉列表中选择已创建的消息模板。
- 单击“确定”,告警通知规则创建成功。
创建告警规则
告警规则用于设置触发告警的配置规则,例如查询条件、检测规则、统计周期、通知频率和通知渠道等信息。
- 登录云日志服务控制台。
- 在左侧导航栏中选择“日志告警”。
- 单击“告警规则”。
- 在“告警规则”页签,单击“创建”,在界面右侧弹出“新建告警规则”页面。
- 在“新建告警规则”页面,参考下面的步骤配置相关参数。
- 基本信息参数配置。
图4 基本信息
表3 搜索分析告警基础信息 参数名称
样例
参数说明
规则名称
错误日志告警
告警规则的名称,建议您根据业务自定义告警规则名称。创建成功后将鼠标悬浮在规则名称上,显示规则名称和原始名称。支持修改规则名称,不支持修改首次创建的原始名称。
命名规范如下:
只支持输入英文、数字、中文、中划线、下划线,且不能中划线、下划线开头或结尾。长度为1-128个字符。
企业项目
default
选择业务需要的企业项目,默认为default。
描述
5min内有10条以上ERROR级别日志上报告警并打印日志详情
对该规则进行简要描述,长度不能超过128个字符。
- 统计分析参数配置。
图5 统计分析
表4 搜索分析告警统计分析 参数名称
样例
参数说明
查询条件(即查询图表。)
添加用于告警检测规则的首张图表,图表编号为0。
lts-group-PR456
日志组名称:选择已创建的日志组lts-group-PR456。
lts-topic-PR456
日志流名称:选择已创建的日志流lts-topic-PR456。
5分钟
查询时间:指定语句的查询周期。查询语句的时间范围:从当前时间往前推一个周期。例如:查询时间设置为5分钟,当前时间为9:00,则查询语句的时间范围为8:55-9:00。
* | SELECT COUNT(*) AS error_count WHERE level = 'ERROR'
查询语句:语句格式如下。
搜索语句 | SQL分析语句
LTS会根据设置的语句对日志流中的日志进行监控。输入查询语句后,单击“预览”,在预览下方正常显示查询结果。
添加用于打印日志内容图表,图表编号为1。单击“添加多个查询条件”,日志组、日志流和查询时间与上个图表相同。查询语句设置为:
level:ERROR | SELECT level,num,message
校验规则
$0.error_count > 10
输入具体的条件表达式,当条件表达式返回为true的时候,产生告警,否则不产生告警。
条件表达式关联多个图表时,条件表达式中需要使用如下格式来引用字段:
${查询条件编号}.{查询语句字段}
$0.error_count 表示首张图表(编号为0)的查询语句“* | SELECT COUNT(*) AS error_count WHERE level = 'ERROR'”中的error_count字段。
第二张图表(编号为1)用于查询错误日志的level、num及message信息,已经在创建消息模板正文中添加对应变量,并不用于此处的告警校验规则。
注意:使用多个图表时,条件表达式中必须存在第一个图表0,即$0.,所以本示例中两张图表的顺序不能调换。
- 高级设置参数配置。
图6 高级设置
表5 搜索分析告警参数说明 参数名称
样例
参数说明
统计周期
固定间隔1分钟
条件表达式查询的频率可以设置固定间隔:自定义间隔周期,需要指定1-60分钟/1-24小时。例如:当前时间为9:00,固定间隔设置为5分钟,则第一次查询时间为9:00,第二次查询时间为9:05,第三次查询时间为9:10.....
恢复策略
3
配置的最近统计周期次数内,如果不满足触发条件且开启恢复时通知开关,则会发送恢复告警通知。
最近统计周期次数最小值为1,最大值为10。
通知场景
勾选告警触发时和告警恢复时
- 告警触发时:用于发送触发告警通知。开启该按钮,当满足触发条件时,会发送告警通知;未开启该按钮,当满足触发条件时,不会发送告警通知。
- 告警恢复时:用于发送恢复告警通知。开启该按钮,当满足恢复策略时,会发送恢复告警通知;未开启该按钮,当满足恢复策略时,不会发送恢复告警通知。
通知频率
立即通知
立即通知指只要产生告警就发送通知。
告警通知规则
错误日志打印邮件通知
请从下拉列表中选择已创建的告警通知规则“错误日志打印邮件通知”。
语言
中文(简体)
发送告警的语言,支持中文(简体)和英文。
标签
-
按照业务需求对不同的告警规则添加对应的标签。单击“添加标签”,分别填写标签键key和标签值value。
- 基本信息参数配置。
- 单击“确定”,搜索分析告警规则创建成功。
查看告警通知
日志上报LTS,当满足5分钟内出现10条日志级别为ERROR的日志时,您将收到邮件通知。邮件正文中既包含第一张图表(编号为0)的错误日志条数统计结果,也包含第二张图表(编号为1)的错误日志详细信息的打印结果。
