可观测监控 Prometheus 版提供开箱即用的报警规则,您也可以自定义针对特定监控对象的报警规则。当规则被触发时,系统会以您指定的报警方式向报警联系人分组发送报警信息,以提醒报警联系人采取必要的问题解决措施。

前提条件

操作步骤

  1. 登录ARMS控制台
  2. 在左侧导航栏选择Prometheus监控 > Prometheus实例列表
  3. Prometheus监控页面的顶部菜单栏,选择K8s集群所在的地域,单击目标K8s集群的名称。
  4. 在左侧导航栏,选择报警配置
  5. 在报警配置页面右上角,单击创建报警
  6. 创建报警面板,执行以下操作:
    1. 可选:告警模板下拉列表,选择模板。
    2. 规则名称文本框,输入规则名称,例如:网络接收压力报警。
    3. 告警表达式文本框,输入告警表达式。例如:(sum(rate(kube_state_metrics_list_total{job="kube-state-metrics",result="error"}[5m])) / sum(rate(kube_state_metrics_list_total{job="kube-state-metrics"}[5m]))) > 0.01
      重要 PromQL语句中包含的$符号会导致报错,您需要删除包含$符号的语句中=左右两边的参数及=。例如:将sum (rate (container_network_receive_bytes_total{instance=~"^$HostIp.*"}[1m]))修改为sum (rate (container_network_receive_bytes_total[1m]))
    4. 持续时间文本框,输入持续时间N,当连续N分钟满足告警条件的时候才触发告警。例如:1分钟,当告警条件连续1分钟都满足时才会发送告警。
      说明 持续N分钟满足告警条件是指在连续N分钟内,您上面设置的PromQL语句条件都能满足。Prometheus默认数据采集周期为15s,如果没有连续N×60/15=4N个数据点满足告警条件(PromQL语句),就不会发送告警。如Prometheus告警规则默认持续时间为1分钟,既只有连续4个数据点都满足告警条件(PromQL语句)才会触发告警。如果您想在任何一个数据点满足告警条件(PromQL语句)就发送告警,请修改持续时间为0分钟。
    5. 告警消息文本框,输入告警消息。
    6. 可选:高级配置标签区域,单击创建标签可以设置报警标签,设置的标签可用作分派规则的选项。
    7. 可选:高级配置注释区域,单击创建注释,设置message,设置 {{变量名}}告警信息。设置完成后的格式为:message:{{变量名}}告警信息,例如:message:{{$labels.pod_name}}重启
      您可以自定义变量名,也可以选择已有的标签作为变量名。已有的标签包括:
      • 告警规则表达式指标中携带的标签。
      • 可观测监控 Prometheus 版通过告警规则创建的标签。
      • 系统自带的默认标签,默认标签说明如下。
        标签说明
        alertname告警名称,格式为:告警名称_集群名称。
        _aliyun_arms_alert_level告警等级。
        _aliyun_arms_alert_type告警类型。
        _aliyun_arms_alert_rule_id告警规则对应的ID。
        _aliyun_arms_region_id地域ID。
        _aliyun_arms_userid用户ID。
        _aliyun_arms_involvedObject_type关联对象子类型,如ManagedKubernetes,ServerlessKubernetes。
        _aliyun_arms_involvedObject_kind关联对象分类,如app,cluster。
        _aliyun_arms_involvedObject_id关联对象ID。
        _aliyun_arms_involvedObject_name关联对象名称。
    8. 通知策略下拉列表,选择通知策略。
      如何创建通知策略,请参见通知策略
    9. 单击确定
    报警配置页面显示创建的报警。8