作者简介
李聪 百度高级研发工程师
负责百度智能运维产品(Noah)监控数据分析相关工作,重点关注故障定位、异常检测等相关领域技术。
干货概览
大家在收集数据的时候常常会往数据上附加一些标签,这些标签从不同的角度对数据加以描述,我们把这些角度称作维度,这些附加了维度信息的数据称作多维度数据。
在收集到数据后,我们往往只关注那些和预期不一样的数据,从多个维度检查这些异常数据集中在什么地方,我们把这种分析方法称作多维度分析。
在网络监控里,我们可以用多维度分析的方法定位网络故障。接下来,本文将以百度内网质量监测的场景为例,介绍多维度分析的实战经验。
内网质量监测需求
百度拥有数十万台服务器,分布在全国各地的几十个数据中心(机房)中,这些服务器通过内网连接起来对外提供服务,这个网络是一个多层级的分布式结构,主要层级有:地域、机房、集群、ToR(Top of Rack,机架)。
图1 百度内部网络拓扑示意
大家看到的各个服务通常是模块化的设计,这些模块部署在不同机房的不同服务器上。一旦内网发生故障,模块间的通信受到影响,会导致服务体验下降或不可用。在工程师发现服务故障的时候,会从程序、数据、宿主机环境、网络环境等各个角度进行检查,评估故障的影响范围,从而选择合适的预案来降低损失。在这个过程中对网络环境的排查是必不可少的。
一个典型的场景是:服务X的工程师发现可用性下降,由于服务部署在机房A、B,需要检查这两个机房的网络环境有没有问题,有问题的话影响了整个机房还是某个ToR下的几