【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

基于日志的交换机故障预测

  • 2019-11-27
  • 本文字数:3675 字

    阅读完需:约 12 分钟

基于日志的交换机故障预测

在当今 Web 服务数据中心网络中,网络设备的故障已经逐渐成为日常发生的事件。对于故障发生后如何处理,之前已经提出了很多的研究。不幸的是,数据中心部署的互联网服务的性能依然受到影响。本文介绍的是 NetMan 实验室发表在 SIGMETRICS2018 的一篇文章《PreFix: Switch Failure Prediction in Datacenter Networks》,文章采用了一种不同的方法——预测故障。这样,运维人员就可以在潜在故障发生前介入并解决。

简介

当前,数据中心网络中传输了大量的数据流量,并部署了大量的服务器和网络设备,包括 ToR 交换机和聚合交换机在内的多种交换机,从服务器收集数据流量,并转发和汇聚给上层的路由器。因此,交换机在数据中心网络中扮演了基础的角色。交换机故障,即交换机不能够转发流量的事件,在数据中心网络中经常发生,在总的网络设备故障中占主导地位,为了让数据中心网络具有较好的容错机制,处理交换机故障是很有必要的。


当前的数据中心网络故障容错方案,聚焦于改变协议和网络拓扑。这样,数据中心网络可以自动地从网络故障中恢复。但是,上述方法并不能覆盖所有的交换机,有时候又需要运维人员快速的诊断并定位。这些方法或者面临部署问题,或者需要大量的时间以定位并解决交换机故障。在这篇文章中,提出一种新的思路,即在交换机故障发生前预测交换机故障。使用这一方法,可以通过提前“解决(fix)”问题,以有效地避免互联网服务性能受损。因此,命名新的系统为“PreFix”。

设计思想以及困难

在研究交换机故障预测这一问题时,很重要的一点是明确什么是交换机故障预测。PreFix 致力于在运行中决定一个交换机是否会在未来近期内发生故障。这一故障预测基于对当前交换机系统状态的测量,以及对历史交换机故障的研究。


当用于在线预测时,故障预测系统需要每隔一段时间就预测一次。所以,需要首先通过把较长的时间区间切分成小的时间片,以实现把连续的时间转化为离散的时间。文章研究的对象是一个拥有固定时间长度的时间片(比如 15 分钟),想要预判在这个时间片未来的一段时间之内(比如 0.5 小时到 24 小时)是否会发生故障。在对训练样本标注的时候,如果在某个时间片之后的一段时间内,并没有发生故障,那么时间片是非征兆消息序列,反之就是征兆消息序列。因此,交换机故障预测问题转变成了一个时间片分类的问题。即根据时间片的关联消息序列,将时间片分类为征兆时间片或非征兆时间片。


PreFix 的思路是,同一交换机型号的交换机在故障发生前共享相同的系统日志模式,可以采用机器学习的方法将这些共同的模式从日志中提取出来以预测交换机的故障。

PreFix 面临的困难

1、系统日志中的噪声信号。系统日志中包含了非常丰富的信息,然而并不是所有信息都能用于故障预测。因此需要过滤掉无关的系统日志消息,获得可靠的预测模式。


2、样本失衡。对于一个数据中心来说,往往产生海量的日志,交换机故障的比例太小,也即机器学习的正样本和负样本严重失衡,这对于一个机器学习问题来说,要达到高精度和高召回率是一个很大的挑战。


3、运算时计算开销。在文章研究的数据中心网络中,如果每 15 分钟做一次故障预测,则需要分析 200,000 条系统日志消息。开销太大。因此,PreFix 中特征提取和预测模型必须具备较高的计算效率。

PreFix 系统

PreFix 的整体模型如下所述。对于每一个型号的交换机,在离线阶段,PreFix 从历史系统日志消息中学习消息模板,从模板序列中提取 4 个特征,并基于历史交换机故障案例,采用随机森林(Random Forest, RF)方法训练模型。相似的,在在线预测阶段,PreFix 将一台交换机产生的实时系统日志映射到系统消息模板上,提取 4 个模板序列特征,并使用训练过的模型确定该交换机在不久的将来是否会发生故障。框架图如下所示:



下面我们要介绍一下系统的详细细节。


首先需要从历史系统日志消息中学习消息模板。文章采用 NetMan 实验室提出的 FT-tree 方法,准确地、增量式地从系统日志消息中学习模板。总的日志模板是固定的,文章定义为 N。学习系统日志消息的模板之后,可以将一个历史系统日志消息或一个实时系统日志消息与一个特定消息模板匹配,并使用该消息模板的 ID 来表示该系统日志消息。


在完成模板提取之后,系统将会提取出模板序列的特征用于预测,但是 PreFix 并不聚焦于单个消息模板中的单词,而是聚焦于模板序列的模式,包括频率、周期性、序列和爆发性 4 种特征以构建描述特征的向量。


1、频率特征。对于一段时间而言,PreFix 构建一个 N 维向量以表示每一个消息模板出现的次数,从而实现提取消息模板序列的频率特征的目的。特别的,对于某个时间段来说,统计每一个日志模板出现的次数,也就是 N 维向量中,每一维的数字,从而构成频率特征。


2、周期性特征。PreFix 尝试判断某个消息模板是具有周期性,我们用 aj 作为衡量消息模板周期性的数值,它的的计算是基于所有匹配到 tj 模板上的系统日志的时间跨度, 因此对于同一个 tj,这个值会保持恒定。


3、序列特征。多个交换机故障前的系统日志消息共享了某些共同的序列特征。如果能够从征兆模板序列中提取出有用的模板序列特征,并过滤掉噪声消息模板,就可以得到有用的特征。为此,我们提出了一个新的方法,LCS²,即两阶段的最长公共子序列(LCS)。LCS²算法背后的动机是如果两个征兆模板序列拥有共有的部分,那么它们的 LCS 不仅仅继承了共有的部分,同样过滤掉了一些两个模板序列中噪声序列模板。


4、爆发性特征。尽管某些单独出现的特征模板对故障的预测并没有什么帮助,但是当它们突然出现的时候,就往往意味着故障。对于一个给定的日志模板 tj,如果 tj 出现的次数在一段时间中存在一个或多个突然的增长,意味着爆发。在第 i 个时间段内,我们可以得到 Oi=(O1,O2…On),其中,On 是模板 tn 出现的次数,因此上述问题转化为求出现在 Oi 中的一个或者多个尖峰。我们已经有了检测时间序列中行为变化的方法,该异常检测方法基于奇异谱变换,从而可以提取出爆发性特征。


在 PreFix 的最后一步,系统采用一种有监督的分类算法,即随机森林算法(Random Forest)来判断是否一个时间片对应的模板序列预示着故障。在本章的实验中,选择 Gini 系数来计算信息增益并选择属性。我们对时间片提取 4 种特征,对于发生过故障的时间片,PreFix 将其标记为 1(也可以称之为正样本)。类似的,把每个没有发生过故障的时间片标记为 0。这样就得到了特征和标注,我们把它们送入到随机森林中,训练模型,并用于检测。

实验验证

数据集

通过与网络运维人员合作,文章随机地挑选了来自 2 个交换机生产厂商的 3 种交换机型号(为简单起见,此后将使用 M1,M2,M3 分别标记这 3 种型号的交换机),并使用数据中心网络中所有的属于上述 3 种型号的交换机以验证和评测 PreFix 的性能。具体地,文章分析了上述交换机超过 2 年的系统日志以及全部的硬件故障。这些交换机分布在超过 20 个数据中心中。所有的交换机硬件故障都是经过运维人员人工验证的,所以可以被用作本章评价 PreFix 性能的标记好的真实数据。

系统评测

PreFix 是首个基于系统日志的预测数据中心网络中交换机故障的系统。因此,在这个领域内没有可以用来对比的基准测试方法。为了展示 PreFix 的性能,文章将 PreFix 与其他两个流行的基于日志的故障预测方法做对比。这两种方法分别是应用于计算机系统的 SKSVM 方法,以及应用于骨干网设备的 HSMM 方法。我们采用 PR_curve 来对这三种方法做一个对比。



M1 型号交换机



M2 型号交换机



M3 型号交换机


从 PR 曲线中可以看出,在三种型号的交换机中,PreFix 均优于其他两种方法。在本章的场景中,HSMM 只提取了序列特征,但是其他 3 种特征也同样重要。此外 SKSVM 的性能也不好,因为其只提取了序列特征,并且该方法过多的依赖于序列的连续性,当存在噪声,效果非常差,同时,考虑到计算成本,系统日志消息的消息类型被用作系统日志消息的 SKSVM 标签。但是,消息类型并不能完全地提取出系统日志消息所代表的事件。


为了论证 PreFix 的通用性,文章把 PreFix 系统用在了硬盘故障预测上。在评估过程中,使用的是 Backblaze 数据集中的 ST4000DM000 硬盘模型,包括了 29084 块硬盘,其中发生过的硬盘故障已经被运维人员标出。该实验的 PR_curve 如下:


总结

文章设计并实现了一个新的框架——PreFix,用于预测在不久的将来是否会发生交换机硬件故障。对于每种型号的交换机,在离线学习阶段 PreFix 从历史系统日志中学习模板,将系统日志消息与模板匹配,从模板序列中提取频率,爆发性用周期性和序列特征,并使用随机森林模型学习故障模式和非故障模式。类似地,在在线预测阶段,PreFix 将实时的系统日志消息与模板匹配,提取 4 种特征,并使用随机森林算法以确定当前状态是否预示着交换机故障。文章通过使用部署在超过 20 个数据中心中的 3 种型号的近万台交换机上采集的系统日志,比较 SKSVM、HSMM 和 PreFix 的性能。实验证明了 PreFix 在准确性方面优于 SKSVM 和 HSMM。具有较高的精度。同时又通过磁盘故障预测,证明了 PreFix 的通用性。


本文转载自公众号 360 云计算(ID:hulktalk)。


原文链接:


https://mp.weixin.qq.com/s/YTw3T2kjINjQYOikQeRghw


2019-11-27 16:29916

评论

发布
暂无评论
发现更多内容

动态规划习题(1)-个人分析

netbanner

Jira组织架构管理哪家强?

龙智—DevSecOps解决方案

Jira组织架构管理 Jira组织架构 Jira插件

免费get | 版本控制软件全功能版

龙智—DevSecOps解决方案

perforce Perforce Helix Core 版本控制软件

Nebula 在 Akulaku 智能风控的实践:图模型的训练与部署

NebulaGraph

图数据库 知识图谱 图数据库实战

网络标准之:IANA定义的传输编码

程序那些事

Java 网络协议 nio 程序那些事 2月月更

杭州AI开发者Meetup报名开启!

百度大脑

Go 语言入门很简单:读写锁

宇宙之一粟

读写锁 Go 语言 2月月更

【重磅发布】蚂蚁动态卡片,让 App 首页实现敏捷更新

蚂蚁集团移动开发平台 mPaaS

ios android 前端 mPaaS

详探 Apache ShardingSphere SQL Parse Format 功能

SphereEx

数据库 sql ShardingSphere SphereEx

墨天轮国产数据库沙龙 | 张玮绚:TDengine,高性能、分布式、支持SQL的时序数据库

墨天轮

数据库 tdengine 国产数据库

亚信科技AntDB与华为鲲鹏完成产品互认证

亚信AntDB数据库

AntDB 华为鲲鹏

开年上云,寻找“好云”推荐官——千元大奖等你赢

阿里云弹性计算

征文活动 玩转ECS

极致用云,数智护航

阿里云云效

阿里云 DevOps 运维 云原生 运维安全

掌握这些招数,你也能写出HR眼中的高分简历

Tom弹架构

求职面试

「前端CI/CD系列」第二篇:如何用建木CI更新七牛云CDN证书

Jianmu

CDN 自动化运维 七牛云 建木CI

RMI、JNDI、LDAP介绍+log4j漏洞分析

H

Java 网络安全

TiDB Hackathon 2021 — pCloud : 做数据库上的 iCloud丨pCloud 团队访谈

PingCAP

数据库

IM全文检索技术专题(四):微信iOS端的最新全文检索技术优化实践

JackJiang

全文检索 微信 IM 即时通讯IM

2021年证券应用活跃度高速提升,用户粘性进一步释放

易观分析

证券市场

电动汽车行业蓬勃发展,是时候关注电动汽车软件了

龙智—DevSecOps解决方案

电动汽车 电动汽车市场 电动汽车软件

Deep dive #2:API 与 Python SDKs 详解

Zilliz

Python 数据库

【C语言】判断语句以及分支语句《详细讲解》

謓泽

C语言 2月月更

Milvus 图形化管理工具 Attu 来袭!

Zilliz

数据库

了解 DevOps,必读这十本书!

禅道项目管理

DevOps

虎符交易所2022年首届交易大赛 最高瓜分5万USDT奖励

区块链前沿News

虎符交易所

Guitar Pro教程之如何设置MIDI键盘

懒得勤快

百度飞桨大企业开放创新中心联合赋能计划启动!助力浦东产业智能化升级

百度大脑

大咖说|对话路特斯科技副总裁李博:如何看待智能驾驶的未来?

大咖说

阿里巴巴 智能 汽车 无人驾驶 路特斯

为什么我的 ORDER BY create_time ASC 变成了 order by ASC

LigaAI

Java 数据库 sql 程序员

火山引擎举办视频云科技原力峰会,发布面向体验的全新视频云产品矩阵

字节跳动视频云技术团队

音视频

前所未有的 Milvus 源码架构解析

Zilliz

基于日志的交换机故障预测_文化 & 方法_步佳昊_InfoQ精选文章