You need to enable JavaScript to run this app.
导航

基于日志关键字触发告警

最近更新时间2024.05.09 10:30:54

首次发布时间2024.05.09 10:30:54

分析和监控日志数据对于及时发现异常情况至关重要。其中,基于关键字触发告警是一种常见的监控告警方式,例如日志中出现目标关键字或出现的次数超过预期就触发告警,可帮助相关人员及时发现重要事件或异常情况。

案例一:出现关键字即触发告警

在指定的时间范围内,日志中出现目标关键字即触发告警。例如参考如下示例创建告警策略,当日志中出现 error 就触发告警。

  • 告警策略
    重要配置示例如下,具体操作步骤及参数说明请参考创建告警策略

    • 执行语句
      设置查询时间范围近 1 分钟,通过如下检索分析语句,统计 1 分钟内 error 出现的次数。count 值大于 0,表示日志中存在 error。

      error | SELECT COUNT(*) AS count
      
    • 触发条件
      当 count 值大于 0 时,触发告警。条件表达式如下:

      $1.count >0
      

    图片

  • 告警通知
    [$1.count=2]表示在指定的时间范围内出现了两次 error 关键字,因此触发了告警。
    图片

案例二:基于关键字出现的次数触发告警

在指定的时间范围内,日志中出现目标关键字的次数超过指定次数时,触发告警。例如参考如下示例创建告警策略,当 1 小时内 error 出现的次数大于 10 次时,触发告警。

  • 告警策略
    重要配置示例如下,具体操作步骤及参数说明请参考创建告警策略

    • 执行语句
      设置查询时间范围近 1 小时,通过如下查询检索语句,计算 1 小时内 error 出现的次数。

      error | SELECT COUNT(*) AS count
      
    • 触发条件
      当 count 值大于 10 时,触发告警。条件表达式如下:

      $1.count >10
      

    图片

  • 告警通知
    [$1.count=23]表示在指定的时间范围内出现了 23 次 error 关键字,超过预期的 10 次,因此触发了告警。
    图片

案例三:基于关键字出现次数的同比增长率触发告警

当日志关键字的出现具有一定周期性变化(例如上午出现的概率明显较高)时,建议对比不同日期中同一时间段内关键字出现次数,并基于同比增长率触发告警。

  • 告警策略
    重要配置示例如下,具体操作步骤及参数说明请参考创建告警策略

    • 执行语句
      设置查询时间范围近1小时,通过如下查询检索语句计算同比增长率。其中,today 表示今天最近 1 小时内 error 关键词出现的次数,yesterday表示昨天同时段内 error 关键词出现的次数,ratio表示今天指定时间段内 error 关键字出现的次数同比昨天同时段的增长率。

      说明

      仅日志服务 2.0 架构支持 COMPARE 函数,详细说明请参考同比与环比函数

      error | SELECT
        diff [1] AS today,
        diff [2] AS yesterday,
        (diff [3]-1) * 100  AS ratio
      FROM  (
          SELECT
            COMPARE(cnt, 86400) AS diff
          FROM      (
              SELECT
               COUNT(*) AS cnt
            )
        )
      
    • 触发条件
      当 ratio 值大于 10 时,触发告警。条件表达式如下:

      $1.ratio >10
      

    图片

  • 告警通知
    [$1.ratio=23.23728878709288]表示今天指定时段内 error 关键字出现的次数同比昨天同时段增长 23.11...%,超过预期的 10%,因此触发了告警。
    图片