百度网络监控实战:猎鹰一战成名

从事网络监控、可用性建设相关工作,负责百度外网监控平台猎鹰、百度内网监控平台NetRadar等系统的研发和优化工作。在网络采集、网络异常检测、系统可用性方面有广泛的实践经验。

干货概览

百度外网质量监控平台猎鹰实时监控百度的外网访问质量,已实现分钟级的外网故障发现和告警,保障每日数百次亿次用户请求的响应。《百度网络监控实战:猎鹰一战成名》系列文章将详细介绍百度面临的典型外网监控场景、需求及百度实现外网监控的原理和百度外网质量监控平台猎鹰的系统架构、核心功能。

背景介绍

百度服务器每天会收到数百亿次来自用户的请求,这些请求在到达百度服务器之前,需要在百度外的公共网络上经过多层网络设备(如运营商接入交换机等)和链路(如运营商骨干网链路、省网链路等)的转发及传输。公共网络中的设备或者链路故障,会导致部分用户无法正常访问百度的服务,影响用户体验。因此,需要对用户到百度的外网连通性进行实时监控,在故障时引导用户流量绕过故障设备/链路,从而提高用户体验。

猎鹰作为百度外网质量监控平台,对整个百度的外网访问质量进行实时监测,实现了分钟级的外网故障发现和告警,同时提供丰富的数据可视化展示,为百度服务的可用性保驾护航,成为百度运维工程师日常工作的必备利器之一。

接下来,AIOps智能运维将分上、下两篇对百度外网质量监控平台猎鹰进行介绍,本篇主要介绍外网监控概述、外网故障场景以及相关需求。

一 外网监控概述

在之前的文章《百度网络监控实战:NetRadar横空出世(上)》中,运小贝提到百度拥有数十万台服务器,这些服务器分布在不同地理位置的IDC中。当用户访问百度服务的时候,域名解析服务(DNS,Domain Name System)会给用户返回一个VIP地址(Virtual IP Address, 百度多台服务器形成的一个虚机地址),然后用户的请求会被转发到这个VIP地址上。用户的请求在到达这个VIP地址之前,依次会经过用户本地接入设备(比如ADSL)→用户所在地域的网络运营商接入设备→运营商骨干网链路→百度IDC所在地域的运营商接入设备→百度IDC的VIP,如图1所示:

图1    用户访问百度服务的请求示例

用户请求在到达百度服务器之前,经过的任何一条链路或者设备出现故障,都有可能会导致用户访问百度服务的体验受到影响(如延时变大或者访问失败)。如图1所示,湖北电信访问www.baidu.com时,默认会被DNS解析到南京机房电信入口的VIP地址。如果南京电信运营商接入设备故障,那么湖北电信用户就无法正常访问了。这时,我们可以将www.baidu.com的域名解析映射关系更改到北京机房电信入口的VIP地址上,则可恢复用户的正常访问。

因此,准确快速地发现这些外网故障,对于保证用户访问体验的重要性不言而喻。

二 外网故障场景

我们将用户请求在外部网络途经的设备和链路按照它们所在的位置划分为三级:用户侧链路及设备、骨干网链路及设备、百度侧链路及设备,如图2所示:

图2    外网设备及链路位置划分

用户侧的链路和设备主要负责一个省份的网络通信。而骨干网主要负责若干相邻省份的网络通信,骨干网络与省份的覆盖关系由运营商确定。不同位置的链路/设备的故障会表现出不同的现象,具体如图3所示:

图3 外网故障场景举例

外网故障场景
  • 如果用户侧设备/链路出现故障,即用户所在省份的网络设备/链路出现故障,则表现出的现象是该省份到百度机房入口的访问不通畅。

  • 如果骨干网设备/链路出现故障,则表现出的现象是多个省份到百度机房入口的访问不通畅。

  • 如果是百度侧设备/链路故障,则表现出的是全国绝大部分省份到百度机房入口的访问不通畅。

为了便于后文的描述,我们称这三种故障为:

  • 单省份故障(用户侧设备/链路故障)

  • 骨干网故障(骨干网设备/链路故障)

  • 机房侧故障(百度侧设备/链路故障)

三 需求调研

那么对于百度的运维工程师和网络组工程师来说,日常工作中对外网监控系统有哪些通用需求呢?通过对运维工程师和网络组工程师进行相关调研,整理需求如下:

1 真实反映用户到百度IDC间的网络访问质量

对于运维工程师来说,他们真正关注的是会影响到用户访问体验的网络故障,因此,真实反映用户到百度IDC间的网络访问质量是外网监控系统进行网络质量监测的基础。

2 覆盖全国三大运营商的各个省份

百度服务每天会收到数百亿次来自三大运营商各个省份的用户请求,为了尽可能多地发现用户端到百度IDC间的网络问题,监测点应当尽量覆盖三大运营商的各个省份。

3 准确快速地主动告警,确定故障类型及影响范围

当出现网络故障时,需要能够快速检测出故障并进行主动告警,而且需要确定故障类型(机房侧故障 or 骨干网故障 or 单省份故障),以便于采取何种策略进行止损,并且需要确定故障影响范围(即哪些业务线受到影响了),没有受到影响的业务线的运维工程师不需要收到故障告警。同时,为了尽可能地缩短服务受网络故障影响的时间,需要尽可能快地检测出故障。

4 支持不同视角的可视化展示

运维工程师通常情况下只关注与其服务相关的网络质量视图,而网络组工程师通常需要关注全局的网络质量视图,因此需要提供多种不同视角的网络质量视图,让运维工程师和网络组工程师都能够快速地获取到其关心的网络质量视图。

总结

本文从宏观上介绍了百度外网质量监控的意义、外网故障场景分类以及百度运维工程师对外网监控系统的需求。在《百度网络监控实战:猎鹰一战成名(下)》中,我们将详细介绍外网监控的实现原理以及猎鹰的系统架构,请持续关注AIOps智能运维

若您有其他问题或者想进一步了解猎鹰,欢迎通过留言与我们交流!

收藏 评论(0)
分享到: