告警功能提供对监控指标的告警服务支持,用户对云服务的核心监控指标设置告警规则,当监控指标触发用户设置的告警规则阈值时,则会按照用户设置的查收通知形式,收取告警信息。目前平台支持以邮箱、短信、等方式通知用户,让用户可以在第一时间得知云资源发生的异常情况,快速准确定位,并迅速处理故障,避免因资源问题或者外部操作原因,造成业务上的损失。

告警服务操作步骤如下:

创建告警策略

首先我们需要创建一个告警策略,指定资源类型、检查周期、告警条件、通知列表等信息。 之后便可将其与资源关联,开始监控。

下面以云服务器监控告警为例,介绍创建的步骤。

在控制台导航中,点击监控告警,进入告警页面,然后点击创建,开始创建。

参数设置

参数设置可输入名称,资源类型和监控周期。 其中资源类型决定了这个告警策略可支持哪些监控项,不同的资源支持不同的监控项,在指定了资源类型后,这个告警策略只能关联同类型资源。 此例中我们选云服务器

20201109144653

告警规则

这一步可对资源支持的监控项设置多条告警规则,任何一条满足条件都会触发告警。

202011041716
说明

监控数据采样间隔都是 1 分钟,所以在设置阈值时,可能需要考虑这个时间因素。

告警行为

最后一步作为可选项,可设置发送通知到通知列表,在资源的告警状态发生变化时收到通知。 目前告警行为仅支持发送通知,以后还会支持更多操作。

202011041717

到此告警策略便创建完成了,如果之后需要修改或调整,都可在告警策略详情页中操作。

需要注意的是,告警策略一旦创建完成,其资源类型属性便不可改变了。如果需要其他资源类型的告警,请另行创建相应的策略。

添加监控资源

告警策略创建完成后,便可给它添加监控资源。如下图所示,在告警策略详情页的基本属性菜单中点击添加监控资源,之后在弹窗中选择要监控的资源即可。

202011041719
202011041720

添加监控资源后,监控服务便会自动对资源开始监控。如果资源被删除,其所关联的监控告警也会随之解除。

查看告警历史

资源监控过程中的重要事件都会记录在告警历史中,告警历史可在资源详情页中看到,历史记录包括:

  • 当修改了告警策略,并应用修改后,历史中会有一条配置变化的记录。

  • 当资源监控状态发生变化时,会有相应的记录。

  • 当执行告警事件时,也会有相应的记录。

202011041721

监控告警有三个状态:正常告警监控数据不足。其中:监控数据不足是指没有取到监控数据,这通常是因为资源已关闭,或公网 IP 已解绑导致。

负载均衡器监听器或后端服务的告警历史的查看需要鼠标点击操作或者右键某个后端服务,再选监控告警,如下图所示。

202011041722

监控历史会保留最近 50 条记录,更早的记录会定期删除。

通知列表

用户可以将一组手机号、邮箱和 Webhook 保存到通知列表中,用以接收云平台系统发送的通知。目前监控告警功能使用了通知列表,在资源发生告警时第一时间将受监控的资源情况通知用户。

本指南将详细介绍如何新建和管理您的通知列表。

创建通知列表

每个云平台账户(包括子账户)都可以创建、管理自己的通知列表。

您可以在控制台左侧导航拦中找到通知列表 (Notification Lists) 一项,点击后进入通知列表管理界面。

点击创建 ,在弹出框中将需要添加的手机和邮箱逐项录入。通常可以按工作人员组别列入不同的通知列表,例如:建立开发团队、运维团队、产品团队等列表。如果在创建告警策略时还没有一个通知列表,在添加告警行为时点击新列表,也能弹出新建通知列表的窗口完成创建。

说明

点击对勾图标添加一条手机号/邮箱后,会自动通过短信或邮件发出验证码。手机号和邮箱的验证可以后续完成,不影响通知列表的创建,但只有验证成功的手机号/邮箱才可以接受告警通知,相同的手机号/邮箱只需要验证一次,再次添加时无需验证。

202011041724

每个通知列表的手机和邮箱数量总和上限是 20 个。点击提交,即可完成通知列表的创建。

修改通知列表

您可以在通知列表界面修改通知列表的内容,点击 ID 号或修改都可以弹出修改框。与创建时一样,如果还没有达到总和上限,您可以继续往列表中添加手机号/邮箱。也可以将通知列表中的手机号/邮箱从列表中移除。

202011041725

验证手机号和邮箱

每加入一条新手机/邮箱,系统会发送一条验证短信或验证邮件,以确保该工作人员同意加入通知列表,并接收来自系统的通知短信。如果没有收到验证短信/邮件,或者过期未验证,可以在修改通知列表时再次发送验证短信/邮件。

202011041726

您可以在通知列表界面或修改弹出框中看到每个手机/邮箱是否已经验证,已经验证的手机/邮箱,以后再加入本用户的通知列表,无需再次验证。

创建 Webhook

Webhook 可以让您的系统直接收到云平台的通知。当监控告警发生时,系统会以 HTTP POST 的方式将通知信息发送到指定 URL ,您可以在这个 URL 的接收逻辑中自行处理通知信息。

每加入一条新的 Webhook URL 都需要先进行验证。验证方法是在 URL Response 中返回指定的 token,一旦通过验证就无需再在 Response 中保留这个 token。每个 URL 对于同一个用户只需验证一次。

202011041727

添加完 URL 后会自动尝试验证一次,如果此时还没有修改好了对应 URL 的返回内容,那么可以在保存完通知列表后,再次展开并点击再次验证的按钮来触发验证。

202011041728

验证通过后,当监控告警发生时,URL 会收到来自云平台主动推送的通知,推送方式是 POST ,POST form 携带的参数如下

{
    "alarm_policy": "inst",                         # 监控告警策略名称
    "resource": {                                   # 资源信息
      "resource_id": "i-fsda5aiv",
      "resource_name": "",
      "resource_type": "instance"
    },
    "rules": {                                      # 监控告警规则列表
      "alpr-lr3gv19q": {
        "alarm_policy_id": "alp-7x97ldud",          # 监控告警策略 ID
        "alarm_policy_rule_id": "alpr-lr3gv19q",    # 告警规则 ID
        "alarm_policy_rule_name": "",               # 告警规则名称
        "condition_type": "gt",                     # 判断条件:gt (>[], lt (<[]
        "consecutive_periods": 1,                   # 连续周期数
        "create_time": "2015-06-05T16:28:55",
        "disabled": 0,                              # 是否禁用
        "meter": "disk-us",                         # 资源监控项
        "owner": "usr-qkMLt5Oo",
        "recent_monitor_data": {"/": [[1433771551, 6]]},
        "status": "ok",                             # 此监控项的状态:ok 正常,alarm 告警中,insufficient 无监控数据
        "data_processor": "raw",                    # 监控阈值类型:raw - 阈值即为监控数据值,percent - 阈值表示的是『百分比』(百分比目前只用于 IP 带宽告警[]
        "thresholds": "90"                          # 监控阈值
      },
      "alpr-u8vue5g6": {
        "alarm_policy_id": "alp-7x97ldud",
        "alarm_policy_rule_id": "alpr-u8vue5g6",
        "alarm_policy_rule_name": "",
        "condition_type": "lt",
        "consecutive_periods": 1,
        "create_time": "2015-06-05T16:28:55",
        "data_processor": "raw",
        "disabled": 0,
        "meter": "memory",
        "owner": "usr-qkMLt5Oo",
        "recent_monitor_data": [[1433771500, 10.3],
         [1433771510, 10.4],
         [1433771520, 10.3],
         [1433771530, 10.4],
         [1433771540, 10.3]],
        "status": "alarm",
        "thresholds": "90"
      },
      "alpr-wkjaaqvh": {
        "alarm_policy_id": "alp-7x97ldud",
        "alarm_policy_rule_id": "alpr-wkjaaqvh",
        "alarm_policy_rule_name": "",
        "condition_type": "gt",
        "consecutive_periods": 1,
        "create_time": "2015-06-05T16:28:55",
        "data_processor": "raw",
        "disabled": 0,
        "meter": "cpu",
        "owner": "usr-qkMLt5Oo",
        "recent_monitor_data": [[1433771500, 0.2],
         [1433771510, 0.5],
         [1433771520, 0.2],
         [1433771530, 0.4],
         [1433771540, 0.2]],
        "status": "ok",
        "thresholds": "90"
      }
    },
    "trigger_status": "alarm",                      # 通知触发条件:ok,alarm,insufficient
    "zone": "beta"
  }

因为通知列表不仅用于监控告警,还可用于接收自动伸缩和定时器的通知, 而不同服务推送的 Webhook 数据也不同,这里一并说明。 当自动伸缩触发通知时,Webhook 携带的参数如下

{
  "zone": "beta",
  "autoscaling_rules": {                         # 自动伸缩规则属性
    "autoscaling_policy_rule_id": "aspr-96lss7vs",
    "history_type": "scale_success",             # 执行结果
    "description": "",
    "scale_direction": "decrease"                # increase: 上调, decrease: 下调
  },
  "autoscaling_policy": {                        # 自动伸缩策略属性
    "autoscaling_policy_id": "asp-36fcf6sb",
    "resource": {                                # 自动伸缩调整的资源
      "resource_name": "",
      "eip_addr": "192.168.7.88",
      "resource_type": "eip",
      "resource_id": "eip-5irjjfki"
    },
    "description": "",
    "autoscaling_policy_name": "",
    "scale_type": "eip_bandwidth"                # 自动伸缩策略类型
  }
}

当定时器触发通知时,Webhook 携带的参数如下。

{
  "tasks": [{                                    # 定时器任务属性
      "scheduler_task_id": "st-jtwx7hqt",
      "history_type": "task_fail",               # 任务执行结果
      "task_type": "start_instances",            # 任务类型
      "scheduler_task_name": ""
  }],
  "scheduler": {                                 # 定时器属性
    "scheduler_name": u"scheduler",
    "scheduler_id": "schd-x0v8l9x9"
  },
  "zone": "beta"
}