您所在的位置: 首页 > 新闻资讯 > 厂商人物

智能运维在百度日常业务监控中的探索

时间:2015-08-17 编辑:robin 阅读:5 次

随着互联网产品规模的爆发式增长,大型分布式系统的监控复杂性也日益显现。工程师们发现:监控遗漏导致宕机的黑天鹅现象频繁发生;出现故障时很难从海量监控指标中迅速找到故障根因;报警风暴极大地干扰了工程师定位问题的速度;故障恢复速度基本依赖于工程师的操作速度。由此,我们尝试建立一个智能运维监控系统,希望用智能化的手段去帮助工程师解决这些问题。

一、嘉宾介绍

曲显平 百度运维部资深研发工程师

百度智能运维监控负责人,在运维监控、大数据处理与分析方向有着丰富的经验。

二、百度数据情况

随着百度各产品的蓬勃发展,百度的服务器数量也呈现出爆发式增长,最近5年增长了大概20倍的规模。与产品规模不断增长相对应地,运维人员每天会收到越来越多的监控报警,面对海量的运维指标,如何快速定位问题所发生的业务层面,达到精准化报警、快速解决问题的目标就成为运维监控常态化的需求。

百度监控系统数据规模,单以时间序列数据为例,不包含日志类数据。

  • 服务器指标数量:>1亿
  • 业务指标数量:>8千万
  • 数据增长速度:50TB/日

三、运维中面临的监控问题

当前,面对复杂的业务监控和问题诊断,运维人员想找到指标和事件之间的关联关系,进行因果关系推导,并最终定位故障,基本依靠人的经验来进行。但随着业务和监控规模的膨胀,运维也希望能够更加自动化、智能化地达成保证服务高可用性的目标,即快速的问题发现、分析定位或止损。

下面,我们可以从发现问题—分析问题—解决问题的思路出发,逐步给出递进的解决方案。

四、发现问题篇:异常自动检测

日常运维的业务指标数据会出现一些环比昨日的明显异常、持续偏离的明显问题和随着时间周期漂移的指标数据等问题,以前这些监控的配置基本靠工程师经验或持续的迭代修正,甚至纯人工排查。随着监控系统的发展,可以通过制定监控标准和自动化监控部署实现运维的标准化和自动化,最终的目标,是希望用智能化的方法彻底解决这个问题。

一般,在系统出现指标数据波动时,需要先判定是否确实为异常情况,确定异常后再实现精准报警。那么,怎么自动检测业务的异常指标,帮助运维工程师和开发工程师处理问题呢?

这里主要有两个策略,自动恒定阈值设定与动态阈值设定:

1.恒定阈值设定法

对于普通数据,运维人员在服务器端设定服务器应用指标超过某合理数值自动报警,并对服务器异常的波动状态进行报警。这个可使用一些标准的统计学方法去自动计算这个阈值,取代人工配置成本。

参考方式:

  • 基于历史数据统计
  • 假设正态分布
  • 3-sigma策略

2.动态阈值设定法

百度大多数业务数据的流量呈现很强的天周期特性,在某时刻出现数据波峰的骤降或波谷数据的骤增等变动情况时,恒定阈值法很难解决这类问题的精准异常判断。那么我们可以把上述方法衍变升级一下,采用动态时间窗口的阈值设定法来解决周期性数据的异常判断。

参考方式:

  • 多分布形式:将数据分段
  • 按天同期计算统计阈值
  • 分段3-sigma策略