更新时间:2025-07-24 GMT+08:00
分享

配置主机告警并查看生成的告警

步骤一:配置主机告警

  1. 在监控服务左侧导航栏选择告警 > 策略配置
  2. 单击“统一告警定义”,进入告警定义页面。
  3. 单击“创建”。
  4. 配置告警定义规则参数,例如CPU利用率大于等于10%就上报告警,配置如图1所示,参数说明如表1所示,配置完成后,单击“确定”。

    图1 配置告警定义规则
    表1 告警定义规则参数说明

    参数

    示例

    说明

    指标来源

    监控指标

    选择告警的指标来源。

    告警定义名称

    showtestvm

    设置告警定义的名称,长度不超过512个字符,告警定义名称支持如下2种命名方式:

    • 普通命名。
    • 表达式命名,使用{{$labels.变量名}}命名,支持的变量如下:
      • cluster:所在ERS集群名称
      • namespace:命名空间
      • workload:工作负载
      • tenant_id:租户ID
      • application_id:应用ID
      • service_id:服务ID
      • site:站点

      例如想要获取CCE集群内存平均使用率大于70%告警,可以命名为:“{{$labels.cluster}}集群的内存使用率超过70%”。

    级别

    一般

    选择该规则生成告警的级别。

    告警类型

    Host@cpu

    选择告警类型,上报的告警会显示类型信息,可根据类型筛选查看告警。

    持续时间

    1

    指标持续异常的时间,以持续时间5min为例,需要异常连续满足5min内的计算点全部异常才会生成告警,否则就不会生成。

    持续时间控制了当前指标生成告警的速率。

    运行模式

    主机

    选择告警定义规则的运行模式。

    是否激活

    -

    是否激活这条告警定义。

    是否调试

    -

    选择是否调试。

    关联监控模板

    1.1版本的监控模板_OS_DEFAULT

    选择需要关联的监控模板。

    指标名称

    cpu util

    选择插件、指标。

    指标名称由插件决定,即为主机绑定的插件能够采集到的指标。例如选择cpu_iowait,指的就是宿主机的cpu io等待时间,在比较方式里可以根据不同的策略来决定当前指标是否异常,异常则生产告警。

    比较方式

    固定阈值 >= 10

    • 区间阈值分为在区间内和在区间外。
      • 在区间内:指数据值满足在该范围内则指标正常,否则异常。
      • 在区间外:指数据值满足不在该范围内则指标正常,否则异常。
    • 固定阈值是指数据不满足当前设置表达式则指标异常,有四种表达式,包括大于等于、小于、等于和不等于。
    • 同比是计算指标的时候与前一天同一时刻的比较,根据前一条的值的大小来决定当前指标是否异常。例如昨日为100,今日为105,增长阈值设置的为4%,实际超出4%,则指标异常。

    告警标签

    -

    指标的补充条件,如果存在告警标签则需要满足所有的告警标签才会生成告警。

    标签的范围也是由指标定义。例如选择ip=10.123.15.102,则上报的指标数据不仅需要满足指标的比较方式同时也需要满足ip=10.123.15.102才能产生指标,如果是同一个业务下其他ip的异常,则不会产生告警。

    标签的判断有四种形式:等于、不等于、正则匹配成功、正则匹配不成功。

    消息模板

    cpu usage is too high on ecs {{$labels.node}},value {{$value}}%

    消息模板是告警msg中的具体信息,可选变量名由指标来决定,每一个指标都有自己对应的变量名列表。

    表达式

    -

    获取表达式,即根据配置的指标、比较方式等生成表达式。

步骤二:构造主机cpu冲高异常

  1. 在ECS主机列表中,选择待构造异常的主机,单击该主机所在行“操作”列的“远程登录”。
  2. 登录主机后,执行如下命令,手动创建脚本。

    touch   cpu_intensive_task.sh
    vi   cpu_intensive_task.sh

  3. 在脚本中注入以下数据。

    #!/bin/bash
    start=$(date +%s)
    while true
    do
        for ((i=0; i<1000000000; i++))
        do
            let "j = $i * $i"
            now=$(date +%s)
            timepassed=$(($now-$start))
            echo "timepassed=$timepassed"
            if [ $timepassed -ge 6000 ]; then
                echo "it is going to break,bye!"
                break 2
            fi
        done
    done

  4. 执行如下命令,运行脚本,运行后cpu会进行冲高。

    bash   cpu_intensive_task.sh

步骤三:查看主机异常告警

  1. 在监控服务左侧导航栏选择告警 > 告警列表
  2. 在页面上方告警级别中筛选“一般”级别告警,等待一段时间查看已生成的主机告警。

相关文档