在云环境下,云平台的运维更离不开运维可视化。在上次文章《智能运维 | 可视化让你一眼看出内网故障》中,我们详细介绍了内网可视化的事件流图。本文继续从可视化角度分析,百度内网监测系统(NetRadar)如何展示在某个时刻的内网异常,从而让运维工程师直观地了解情况。

什么是机房连通性可视化

当运维工程师发现自己的系统出现异常,并通过事件流图得知内网存在异常后,他需要进一步得知这些异常影响了内网的哪些部分,从而判断内网的异常是否造成了自己系统的故障。在这种情况下,运维工程师希望能够有一个视图直观地展示异常的影响范围。具体来说影响范围包括:

  • 哪些机房之间的连通性有异常
  • 哪些机房的内部网络存在异常
  • 连通性异常是否是地域性的

备注:一个区域包含多个机房,比如华北区域包括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内部集群之间的网络连通性, 集群的网络连通性跟机房连通性矩阵的方式是一样的,就不详细展开了。

总 结

矩阵图的最大优点在于,寻找对应元素的交点很方便,而且不会遗漏,显示对应元素的关系也很清楚。所以是一种很好的方式来可视化机房连通性的异常状况。从内网连通性矩阵图来看,可视化能让运维由繁化简,关键是我们如何从业务角度出发,用可视化手段来表达运维数据。在智能运维场景中,我们结合业务,抽象出这些可视化组件,单独看这些可视化组件没那么神奇,但是如果我们把它们放在一起,就得到了运维通用的解决方案。

后面我们还会持续发布可视化相关的文章,请关注百度云微信公众号。 ')}