2.7. 监控报警服务

2.7.1. 概要

监控报警系统为UOS云平台上的资源提供实时的可视化的监控数据,系统提供了多种监控指标,可以对一个或多个指标,灵活设定报警规则,发送报警通知,以便让用户能及时的了解资源的使用情况,性能问题以及健康状况。

2.7.2. 概念和架构

下面是UOS监控报警系统的架构图,该系统可以简单理解成一个大的数据存储池,数据来源有两个,一个来自UOS平台内的资源,每种资源都默认提供了一些常用的监控指标,一个来自用户自定义的监控指标,用户可以将任何地方的监控数据推送至UOS监控系统,监控系统会周期性的采集和接收数据,这些数据存储在监控系统的数据库中,一方面可以向用户提供图形化的监控数据,一方面可以用作报警系统的数据依据。

monitor


下面介绍一下UOS监控系统涉及到一些概念:

  • 指标: 指要监控的变量,针对该变量周期性采集的数据可以看成该变量随时间变化的值,比如虚拟机的CPU使用率就是一个指标,指标可分为UOS内置指标和用户自定义指标。
  • 报警: 可以对某个资源的某个指标,设定一个阈值,当在若干个时间段内该指标超过或低于该阈值时,就发送出通知给相关人员。
  • 组合报警: 指多个报警组合在一起,根据多个资源,多个指标的综合情况,来判断是否触发报警。
  • 通知终端: 指可以用来接收通知的地址,比如手机号码,邮箱地址或者是一个URL。
  • 通知列表: 是通知终端的一个集合,一个通知列表下可以有多个通知终端,当向该通知列表发送一个消息时,该通知列表下所有的通知终端都会接受到该消息,报警通知就是发送到通知列表中。

2.7.3. 监控指标

目前,UOS内置的监控指标如下:

虚拟机:

  • 内存使用率:内存使用百分比
  • CPU使用率:CPU使用百分比
  • 磁盘读速率:挂载到该虚拟机的所有磁盘总的读速率
  • 磁盘写速率:挂载到该虚拟机的所有磁盘总的写速率
  • 网络进流量:该虚拟机所有网卡的总的进流量速率
  • 网络出流量:该虚拟机所有网卡的总的出流量速率

云硬盘:

  • 云硬盘读速率:云硬盘每秒读取的数据量
  • 云硬盘写速率:云硬盘每秒写入的数据量
  • 云硬盘读请求速率:云硬盘每秒读请求的数量
  • 云硬盘写请求速率:云硬盘每秒写请求的数量

公网IP:

  • 下行网络流量速率:公网IP每秒流入设备的数据量
  • 上行网络流量速率:公网IP每秒流出设备的数据量
  • 下行网络数据包速率:公网IP每秒流入设备的数据包量
  • 上行网络数据包速率:公网IP每秒流出设备的数据包量

在》监控报警》监控指标中列出了所有的监控指标和资源的组合,点击其中的任意一行,在右边的图表中会绘制出该资源的该指标的监控数据曲线,有最近三小时,最近一天,最近一周,最近一月四个时间粒度供查看:

monitor


由于监控指标和资源的组合很多,我们提供了“过滤”和“搜索”两种方式用来快速定位监控指标,在“过滤”中选择指标,点击“查看”,会在下面的列表中,只显示选中的监控指标,如果点击“查看并保存”,除了显示选中的监控指标外,还会将选中的监控指标进行保存,方便以后进行操作:

monitor


在搜索框中输入关键字,会将包含该关键字的监控指标列出来。

2.7.4. 报警

如果想对某个资源进行实时监控,当该资源的某个指标出现异常时,及时发出通知,那么可以创建一个报警,创建报警分为三步:

第一步,就是先选择监控指标,用上面介绍到的方法即可 第二步,填写报警规则

monitor


报警规则主要填写3个参数:阈值、周期和周期数。

  • 阈值是报警的临界值,可以选择大于或者是小于某个阈值时触发报警;
  • 周期是该报警被检查的频率,默认是5分钟检查一次,最小频率目前为1分钟;
  • 周期数指在连续多少个周期的时间内,该指标一直大于或小于阈值才触发报警,这主要是为了降低突发性数据引起的误报警。

此外,还有统计值,用来指定监控数据的性质,目前有三个值可以选择:平均值,最大值,最小值,平均值适用于大多数情况,最大值可以用来对峰值进行监控,最小值反之。

Tips: 在右方的图表中,您也可以对比当前的数据,直接拖动红色的横线来设定阈值。

第三步,关联通知列表

每一个报警都有三个状态:

  • 正常状态,指当前的监控指标不满足设定的报警规则,说明该资源的该指标处于正常的状态;
  • 报警状态,指监控指标已经满足了报警规则,在连续的一段时间内大于或小于设定的阈值;
  • 数据不足,一般该状态出现在报警刚被创建的时候,还没有收集到足够的数据来决定当前报警的状态;

在第三步可以为每一种状态切换关联一个通知列表,当报警的状态切换到该状态时,就发送报警通知到对应的通知列表中,比如当报警处于报警状态时,就发送报警通知到运维组,以便让运维人员及时排查问题。

创建好报警之后,可以到详细中查看创建的报警的详细信息,在报警的“历史记录”中,保存了每一次状态切换,报警规则修改等操作的历史记录:

monitor


2.7.5. 组合报警

组合报警的目的主要是为了对一个“业务集群”进行监控,可以对多个资源,多个指标的集合进行监控。

比如一般典型的互联网业务都会有Web服务器、数据库服务器和缓存服务器,对Web服务器可能关注CPU和网络IO,对数据库服务器可能关注磁盘IO,对缓存服务器可能更多关注内存。当集群稍微大点,服务器一般都会放在负载均衡后面,或者是做主从,管理员可能并不想当其中某一个服务器的某一个指标出现异常时就发出大量的无谓的报警,而是当其中某几个指标同时报警时,才会认为是出现了异常,这种情况就是组合报警的应用场景之一,如下图:

monitor


除此之外,尽管可以灵活的利用组合报警,组合出适合自己业务的监控规则。

创建组合报警很简单,选择已有的报警,然后选择他们之间的关系即可:

monitor


报警触发条件有两个选项,同时满足和有一个满足,分别对应上图中的与和或的逻辑关系,同时满足指所组合的报警同时处于报警状态时,该组合报警才会变为报警状态,有一个满足则是只要有一个报警处于报警状态,则这个组合报警就变为报警状态,除此之外,组合报警都是正常状态。