配置主机告警并查看生成的告警
步骤一:配置主机告警
- 在监控服务左侧导航栏选择 。
- 单击“统一告警定义”,进入告警定义页面。
- 单击“创建”。
- 配置告警定义规则参数,例如CPU利用率大于等于10%就上报告警,配置如图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冲高异常
- 在ECS主机列表中,选择待构造异常的主机,单击该主机所在行“操作”列的“远程登录”。
- 登录主机后,执行如下命令,手动创建脚本。
touch cpu_intensive_task.sh vi cpu_intensive_task.sh
- 在脚本中注入以下数据。
#!/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
- 执行如下命令,运行脚本,运行后cpu会进行冲高。
bash cpu_intensive_task.sh
步骤三:查看主机异常告警
- 在监控服务左侧导航栏选择 。
- 在页面上方告警级别中筛选“一般”级别告警,等待一段时间查看已生成的主机告警。