文档首页/ 云日志服务 LTS/ 最佳实践/ 日志告警/ 多图表查询结果应用于告警检测和告警通知
更新时间:2025-08-20 GMT+08:00
分享

多图表查询结果应用于告警检测和告警通知

在配置告警时,经常需要使用多张图表的查询结果。您可以将首张图表的查询结果用于告警检测规则,同时将其他图表的查询结果打印到告警通知消息中

例如,您希望监控日志级别为ERROR的日志,当5分钟内出现10条日志级别为ERROR的日志,即触发“紧急”告警。并在邮件正文通知中打印错误日志的查询结果,包括日志的级别(level),编号(num),报错信息(message)。

在创建告警规则时,您可以添加两张图表:

图1 图表详情
  • 第一张图表(编号为0):查询日志级别为ERROR的日志条数,用于检测规则的条件表达式。
  • 第二张图表(编号为1):查询错误日志的level、num及message等详细信息,用于打印到告警邮件正文通知。

您可以参考以下操作步骤完成该场景的告警配置。

操作视频

创建消息模板

消息模板是告警通知消息的固定格式,使用消息模板发送告警通知消息时,系统会自动将模板变量替换为告警规则中的内容。您可以在邮件正文中添加如下语句,告警通知中会打印出错误日志的查询结果。

查询日志:$event.annotations.results[1].raw_results
  1. 登录云日志服务控制台
  2. 左侧导航选择“日志告警”。
  3. 单击“告警通知规则”。
  4. 选择“消息模板”页签,单击“创建”,在界面右侧弹出“创建消息模板”页面。
  5. 参考表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

  6. 配置完成后,单击“确定”。

创建告警通知规则

告警通知规则用于关联消息通知服务SMN主题和消息模板,当触发告警后,自动根据消息模板内容以邮件形式发送告警通知。

  1. 登录云日志服务控制台
  2. 在左侧导航栏中选择“日志告警”。
  3. 单击“告警通知规则”。
  4. 在“告警通知规则”页签,单击“创建”。参考表2配置相关参数。

    图3 告警通知规则
    表2 告警通知规则参数说明

    参数名称

    样例

    参数说明

    通知规则名称

    错误日志打印邮件通知

    自定义通知规则名称,创建成功后不支持修改。命名要求如下:

    只能由数字、字母、中文、下划线、中划线组成,且不能以下划线、中划线开头结尾,长度为1到64个字符。

    企业项目

    default

    选择已创建的企业项目。

    如果当前账号未开通企业项目则不显示该参数。

    描述

    -

    自定义通知规则的描述,字符长度0-1024个字符。

    主题

    LTS

    选择已创建的SMN主题。

    在SMN界面创建主题,主题名称命名为LTS,主题创建成功后为该主题添加订阅,即邮件通知的接收人。

    创建主题的详细操作请参考创建主题

    订阅主题的详细操作请参考订阅主题

    消息模板

    多表查询

    通知消息的模板,请从下拉列表中选择已创建的消息模板。

  5. 单击“确定”,告警通知规则创建成功。

创建告警规则

告警规则用于设置触发告警的配置规则,例如查询条件、检测规则、统计周期、通知频率和通知渠道等信息。

  1. 登录云日志服务控制台
  2. 在左侧导航栏中选择“日志告警”。
  3. 单击“告警规则”。
  4. 在“告警规则”页签,单击“创建”,在界面右侧弹出“新建告警规则”页面。
  5. 在“新建告警规则”页面,参考下面的步骤配置相关参数。

    1. 基本信息参数配置。
      图4 基本信息
      表3 搜索分析告警基础信息

      参数名称

      样例

      参数说明

      规则名称

      错误日志告警

      告警规则的名称,建议您根据业务自定义告警规则名称。创建成功后将鼠标悬浮在规则名称上,显示规则名称和原始名称。支持修改规则名称,不支持修改首次创建的原始名称。

      命名规范如下

      只支持输入英文、数字、中文、中划线、下划线,且不能中划线、下划线开头或结尾。长度为1-128个字符。

      企业项目

      default

      选择业务需要的企业项目,默认为default。

      描述

      5min内有10条以上ERROR级别日志上报告警并打印日志详情

      对该规则进行简要描述,长度不能超过128个字符。

    2. 统计分析参数配置。
      图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.,所以本示例中两张图表的顺序不能调换。

    3. 高级设置参数配置。
      图6 高级设置
      表5 搜索分析告警参数说明

      参数名称

      样例

      参数说明

      统计周期

      固定间隔1分钟

      条件表达式查询的频率可以设置固定间隔:自定义间隔周期,需要指定1-60分钟/1-24小时。例如:当前时间为9:00,固定间隔设置为5分钟,则第一次查询时间为9:00,第二次查询时间为9:05,第三次查询时间为9:10.....

      恢复策略

      3

      配置的最近统计周期次数内,如果不满足触发条件且开启恢复时通知开关,则会发送恢复告警通知。

      最近统计周期次数最小值为1,最大值为10。

      通知场景

      勾选告警触发时告警恢复时

      • 告警触发时:用于发送触发告警通知。开启该按钮,当满足触发条件时,会发送告警通知;未开启该按钮,当满足触发条件时,不会发送告警通知。
      • 告警恢复时:用于发送恢复告警通知。开启该按钮,当满足恢复策略时,会发送恢复告警通知;未开启该按钮,当满足恢复策略时,不会发送恢复告警通知。

      通知频率

      立即通知

      立即通知指只要产生告警就发送通知。

      告警通知规则

      错误日志打印邮件通知

      请从下拉列表中选择已创建的告警通知规则“错误日志打印邮件通知”。

      语言

      中文(简体)

      发送告警的语言,支持中文(简体)和英文。

      标签

      -

      按照业务需求对不同的告警规则添加对应的标签。单击“添加标签”,分别填写标签键key和标签值value。

  6. 单击“确定”,搜索分析告警规则创建成功。

查看告警通知

日志上报LTS,当满足5分钟内出现10条日志级别为ERROR的日志时,您将收到邮件通知。邮件正文中既包含第一张图表(编号为0)的错误日志条数统计结果,也包含第二张图表(编号为1)的错误日志详细信息的打印结果。

图7 邮件通知告警

相关文档