赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 告警
  6. 最佳实践
  7. 旧版告警设置

旧版告警设置

  • 最佳实践
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

日志服务支持根据仪表盘中的统计图表设置告警,实现实时的服务状态监控。

告警的查询区间和执行间隔

日志服务根据执行间隔定时执行您所配置的查询和分析语句,并将查询和分析结果作为告警条件的参数进行计算。如果计算结果为true,则告警触发。

请勿将查询和分析的时间范围设置成与执行间隔一致的相对时间。原因如下(以执行间隔为1分钟为例):

  • 数据写入日志服务到能够被查询到,这期间存在延时(一般少于3秒)。即使延时很低,也存在数据漏查的风险。例如告警执行时间为12:03:30,查询和分析的时间范围为相对一分钟,即[12:02:30,12:03:30),对于12:03:29秒写入的日志,不能保证在12:03:30肯定能够查询到。

    • 如果对告警准确性要求高(不重复报警、不漏报),将查询和分析时间范围中的起止时间都往前推移。例如告警执行时间为12:03:30,则查询和分析的时间范围为[12:02:20,12:03:20),通过设置10秒的缓冲时间来避免因为索引速度导致的漏查。

    • 如果对告警的实时性要求高(第一时间收到告警,能够容忍重复报警),查询和分析时间范围中的开始时间往前推移。例如告警执行时间为12:03:30,查询和分析的时间范围设置为[12:02:20,12:03:30)。

  • 同一分钟内包含不同时间的日志时,由于日志索引的构建,时间较迟的日志的索引可能落盘到较早的时间点。例如告警执行时间为12:03:30,查询范围为相对一分钟,即[12:02:30,12:03:30)。如果在12:02:50秒写入日志,这些日志时间为12:02:20、12:02:50等,那么这些日志的索引可能落盘在12:02:20这个时间点,导致在[12:02:30,12:03:30)期间查询不到日志。

    • 如果对告警的准确性要求高(不重复报警,不漏报),查询和分析的时间范围使用整点时间,例如整点1分钟、整点5分钟、整点1小时等,并且将执行间隔设置为一致的时间,例如1分钟、5分钟、1小时等。

    • 如果对告警的实时性要求高(第一时间收到告警,能够容忍重复报警),查询和分析的时间范围至少需要包含前一分钟。例如告警执行时间为12:03:30,查询和分析的时间范围可以设置为相对90秒,那么实际的查询和分析的时间范围为[12:02:00,12:03:30),同时设置执行间隔为1分钟。

基于查询结果告警

基于查询结果设置告警时,只要查询结果不为空就认为满足告警条件,即设置告警触发条件为判断任意字段存在即可。

例如您希望当日志中包含键值对client_ip: 192.0.2.1就产生告警,则您可以按照如下配置创建告警。具体操作,请参见设置告警。假设client_ip字段在每条日志都存在且不为空字符串,则只要client_ip字段不为空就触发告警。

基于查询结果告警

基于分析结果告警

基于分析结果设置告警是最常见的场景。例如您希望包含ERROR关键字的日志条数达到阈值即触发告警,则您可以按照如下配置创建告警。具体操作,请参见设置告警。

基于分析结果告警

关联多个图表

当您基于仪表盘创建告警时,日志服务支持同时对1~3个查询和分析结果设置告警。

说明
  • 多个图表之间的查询区间相互独立。

  • 关联多个图表时,触发条件中需要使用${编号}.{字段}方式引用查询和分析结果中的字段。例如$0.pv > 100000 && $1.uv < 1000,其中$0表示编号为0的图表,$1表示编号为1的图表。更多信息,请参见如何查看图表编号。

  • 多个触发条件之间使用2个and符号(&&)连接,例如pv%100 > 0 && uv > 0。

  • 对不同时间范围的查询和分析结果进行组合告警。

    例如您希望15分钟内的PV大于100000,一小时内的UV小于1000时触发告警,则您可以按照如下配置创建告警。具体操作,请参见设置告警。仪表盘告警

  • 基于部分图表告警,其他图表的查询结果作为辅助信息。

    例如,您希望基于日志级别为ERROR的日志条数触发告警,与此同时,希望能够在告警通知中看到实际的日志级别为ERROR的日志,则您可以按照如下配置创建告警。具体操作,请参见设置告警。

    告警

    在告警通知中只需要设置如下内容,即可看到实际日志级别为ERROR的日志。

    ${results[1].RawResultsAsKv}

告警抑制

当告警触发时,可能会在一段时间内多次收到通知。为了防止因为数据抖动导致的误报和重复告警,可以通过设置连续通知阈值或通知间隔来对告警进行抑制。 具体操作,请参见设置告警。告警抑制

  • 设置连续通知阈值。

    只有在连续多次检查中都满足告警条件才会触发告警。

    例如告警执行间隔为1分钟,触发阈值为5,则表示在连续5次即5分钟内每次告警检查结果都满足告警条件才会发送通知。只要有一次没有满足触发条件,计数将重置。

  • 设置通知间隔。

    当告警设置的执行间隔较小时,为了防止频繁收到通知,您可以设置两次通知之间的最小间隔。例如告警执行间隔为1分钟,通知间隔为30分钟,即使30分钟内有告警触发,也不会收到任何通知。

使用模板变量丰富通知内容

您在配置通知方式时,可在发送内容和主题中,通过${fieldName}方式引用模板变量。日志服务发送告警通知时,会将发送内容和主题中的模板变量替换为真实值。例如${Project}替换为告警规则所属的Project名称。更多信息,请参见旧版告警的模板变量。

  • 对于顶层的变量如Project、AlertName、Dashboard,可以直接使用${fieldName}方式引用,不区分大小写。

  • 每次产生告警时,系统自动生成告警上下文信息,存储于Results字段(数组类型)中。数组中的每个元素对应告警关联的一个图表(对于大多数场景,可能只有一个元素)。更多信息,请参见告警日志字段。Results中的字段可以通过如下方式引用:

    • 数组类型的字段通过${fieldName[{index}]}方式引用,其中{index}表示数组下标,从0开始。例如${results[0]}表示引用Results数组中的第1个元素。

    • 对象类型的字段通过${object.key}引用。例如${results[0].StartTimeTs}的结果为1542453580。

    说明

    RawResults和FireResult内的字段为查询结果,区分大小写,其他字段均不区分大小写。

    {
      "EndTime": "2006-01-02 15:04:05",
      "EndTimeTs": 1542507580,
      "FireResult": {
        "__time__": "1542453580",
        "field": "value1",
        "count": "100"
      },
      "FireResultAsKv": "[field:value1,count:100]",
      "Truncated": false,
      "LogStore": "test-logstore",
      "Query": "* | SELECT field, count(1) group by field",
      "QueryUrl": "http://xxxx",
      "RawResultCount": 2,
      "RawResults": [
        {
          "__time__": "1542453580",
          "field": "value1",
          "count": "100"
        },
        {
          "__time__": "1542453580",
          "field": "value2",
          "count": "20"
        }
      ],
      "RawResultsAsKv": "[field:value1,count:100],[field:value2,count:20]",
      "StartTime": "2006-01-02 15:04:05",
      "StartTimeTs": 1542453580
    }

排查告警未触发原因

配置告警之后,您可以通过告警日志排查告警未触发的原因。具体操作,请参见查看告警记录。日志字段说明,请参见告警日志字段。

相关文章

基于日志关键字设置告警 2025-04-22 10:51

将日志采集到日志服务后,您可以通过日志服务告警系统实现基于日志关键字的告警。 背景信息 日志记录了系统的运行过程及异常信息,例如warning日志

限制日志服务告警通知时段的常见方法 2025-04-22 10:51

本文介绍限制告警通知时段的常见方法以及各自适用的场景。 背景信息 在对系统进行监控告警的过程中,并非在任何时间段都需要接收告警通知,例如针对以下场景,可通过相关设置,限制告警通知时段。

自定义分析告警日志 2025-04-22 10:51

日志服务以日志形式记录告警的整个生命周期,并存储到专属的Logstore中。您可以通过告警日志,了解监控对象的整体状况、稳定性等。本文介绍在专属Logstore中进行告警日志自定义分析的操作步骤。 背景信息

在告警通知中引用日志内容 2025-04-22 10:51

您可以在内容模板中选择合适的变量(labels、annotations、fire_results或results),用于在告警通知中引用日志内容。 日志服务支持在告警通知中展示触发告警的详细信息,帮助您在接收到告

通过函数计算实现日志告警的自动处理 2025-04-22 10:51

当您为日志创建告警规则后,可以通过函数计算接收告警通知并自动处理告警事件。例如某企业在使用OSS时,要求所有Bucket的ACL都必须为私有(private)。如果有员工在创建或管理OSS Bucket时,将ACL设置为公共读(public-read)或公共读写(public-read-write)

告警对接FlashDuty 2025-04-22 10:51

本文介绍如何通过Webhook方式同步日志服务告警事件到FlashDuty,实现告警自动化处理。 背景信息 FlashDuty为企业内统一事件响应平台,支持接收各种来源告警事件,支持统一管理、协同、分析与自动化处理告警事件,有助于提升故障响应效率、降低故障损失。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号