
对于运维可视化,在前面的文章《运维可视化 | 漫谈内网监控可视化》中详细介绍了能将内网监控中的异常情况可视化的事件流图。本文将从可视化角度继续分析,百度内网监测系统(NetRadar)如何通过可视化手段展示在某个时刻内网中存在哪些异常,从而让运维工程师直观地知道内网的哪些部分受到了异常的影响。
机房连通性可视化
当运维工程师发现自己的系统出现异常,并通过事件流图得知内网存在异常后,他需要进一步得知这些异常影响了内网的哪些部分,从而判断内网的异常是否造成了自己系统的故障。在这种情况下,运维工程师希望能够有一个视图直观地展示异常的影响范围。具体来说影响范围包括:
1.哪些机房之间的连通性有异常
2.哪些机房的内部网络存在异常
3.连通性异常是否是地域性的
备注:一个区域包含多个机房,比如有华北区域包括 4 个机房,华东区域包括 4 个机房,华南区域包括 3 个机房。区域之间通常用跨区域的链路连接。跨区域链路出现故障时,会导致两个区域中的机房互相不能连通。
可视化网络状态的方法包括两种:图(graph)和连通性矩阵。在图中,每个节点代表一个网络实体,比如交换机、路由器、主机等,每条边代表网络实体之间的链路。在连通性矩阵中,网络实体对应矩阵的行和列,矩阵中的元素表示所在行和列对应的网络实体之间的链路。根据上述的需求,我们可以看出工程师们主要关注机房之间的连通性情况。如果用图的方式表达,就会形成一个全连通图,图中大量的边不利于工程师掌握网络总体状态。因此,我们决定使用连通性矩阵的可视化方法。
1 连通性矩阵
假设有 a1, a2, a3, a4 四个机房,可以用一个 4 行 4 列连通性矩阵来表示,其中机房 ai 对应矩阵中的第 i 行和第 i 列。矩阵中第 i 行第 j 列的元素描述的就是机房 ai 到机房 aj 的连通性状态,如下图:

图 1 连通性矩阵
我们不妨用 bij 来表示矩阵中位于第 i 行第 j 列的元素。图中存在一个红色的圆点,位于 b32,以及一个灰色的三角形,位于 b44。
b32 的红色的圆点代表机房 a3 到机房 a2 的链路出现了异常。在矩阵中,与 b32 对称的元素 b23 代表的是机房 a2 到机房 a3 的链路状态。b23 和 b32 说的都是机房 a2 和机房 a3 之间的链路,只是方向不同,这正好可以表达内网监控系统的探测方向。为了探测网络连通性,监控系统在服务器之间发送探测包。比如,服务器 x 给服务器 y 发送了一个探测包,y 收到探测包后给 x 发送一个响应包。如果 x 收到了响应包,就认为 x 到 y 的链路没有问题。反过来,y 也可以给 x 发送探测包,x 发送响应包。这说明内网监控系统的探测是存在方向性的。所以图中 b32 有红点,b23 没有点的意思就是:机房 a3 的服务器主动发送探测包探测机房 a2 中的服务器,存在大量丢失响应包或者延迟显著增大的情况,连通性有异常;而机房 a2 的服务器主动发送探测包探测机房 a3 中的服务器,响应包基本都能正常到达。两个探测方向结论不一致主要是由机房的网络出口和入口设备不同,并且单一设备出故障导致。
b44 的灰色三角形代表的是机房 a4 的机房内网络存在异常。连通性矩阵的主对角线元素 bii 都代表机房内网络的状态。为了能够与机房间网络有更直观的区分,我们选择了三角形来表示。
最后,颜色代表了异常的程度,红色代表异常程度比较严重,灰色代表异常程度比较轻微。所以图 1 中 a3 到 a2 的机房间网络存在比较严重的连通性异常,而 a4 的机房内网络则存在比较轻微的连通性异常。
当连通性矩阵中存在多个异常点时,这些点可以形成特定的模式,分别代表不同的网络问题。下面,我们就来分析几种常见的模式。
2 单机房出/入口链路问题
在连通性矩阵图中,可能会出现整行红色圆点。

图 2.1 单机房出口链路问题
图2.1存在三个红色的圆点,分别位于b31, b32, b34位置。这就是整行红色圆点的情况。 每个点的含义如下:b31代表的是a3到a1的链路有异常,b32是a3到a2的链路有异常, b34 表示a3到a4链路有问题, 从这几个链路问题来看,链路都是从a3出来的,所以a3的出口链路出现了故障。
当然有可能出现整列红色圆点的情况,如下图所示:

图2.2 单机房入口链路问题
图2.2的三个红色圆点,分别在b13, b23, b43位置, 同理: b13表示a1到a3的链路有问题, b23说明a2到a3链路有故障, b43呈现a4到a3的链路问题,这一列的链路问题,说明a3的入口链路出现的异常。
是不是有整行,整列的红点情况呢?

图2.3 单机房出入口链路问题
图2.3包含了6个红色圆点,是图2.1与图2.2的集合, 整行与整列的异常代表a3的出/入链路都出现异常。
3单机房核心设备问题
图2.1,图2.2,图2.3都看到b33这个点是没有状态的,那如果在b33的点的异常情况也加上有表示什么呢?看如下可视化方式:

图3 单机房核心设备问题
图3所示,除了图2.2中的6个红色圆点,还在b33中有个红色的三角, b33位置的三角刚好在矩阵图的主对角线上,代表a3机房内网络出现故障。图3的6个红色圆点说明a3的出/入链路出现网络异常,红色三角说明a3单机房核心设备也出现故障。
4区域链路问题
通常,网络不是只在某一个区域,有可能同时有华北区域a1, a2, a3, a4四个机房,华东区域b1, b2, b3, b4四个机房,华南区域c1, c2, c3, c4四个机房,如下图所示。

图4.1 区域链路问题
图4.1,我们可以看出机房分别用三个颜色来标识:紫色,蓝色,绿色。这几个颜色在右上角有说明分别代表华北区域,华东区域与华南区域。同时,图中在蓝色区块的华东区域(b1, b2, b3, b4机房)两个区块有大批红点出现,呈现两个矩阵形状的圆点,这说明华东区域的链路问题导致机房互相不能连通。那如果,我们想对区域进行筛选,只查看华北,华南的区域之间的情况呢?如下图所示:

图4.2 区域筛选链路问题
如图4.2中只有一个红色三角与红色圆点,与图4.1相比,这里筛选掉了图4.1华东区域的所有异常, 我们从图4.2中,能看到一个细节问题,鼠标移动到异常点的时候,出现“进入c3-a4机房详情页 ”tooltip信息,点击这个异常点,可以进一步查看这俩机房间的异常事件与相关的指标趋势。如果想要知道a4机房内的详情情况,可以点击这个异常点详情查看,然后我们可以进一步观察a4内部集群之间的网络连通性, 集群的网络连通性跟机房连通性矩阵的方式是一样的,就不详细展开了。
总结
矩阵图的最大优点在于,寻找对应元素的交点很方便,而且不会遗漏,显示对应元素的关系也很清楚。所以是一种很好的方式来可视化机房连通性的异常状况。从内网连通性矩阵图来看,可视化能让运维由繁化简,关键是我们如何从业务角度出发,用可视化手段来表达运维数据,在智能运维场景中,我们结合业务,抽象出这些可视化组件,单独看这些可视化组件没那么神奇,如果我们把它们放在一起,就得到了运维通用的解决方案。后面我们还会持续发布可视化相关的文章,请持续关注百度的AIOps智能运维公众号。
作者介绍:
莫莫,百度资深前端研发工程师,负责百度智能运维(Noah)相关产品的前端设计和研发,在运维数据可视化方向有着丰富的实践经验。
本文转载自公众号AIOps智能运维(ID:AI_Ops)。
原文链接:
https://mp.weixin.qq.com/s/M_teW4hNNaLWbWghA02j9A
评论