智能运维平台发展及现状
AIOps是一种综合了大数据、机器学习和可视化技术来更深入的洞察和增强IT运营的技术平台。随着大数据和人工智能技术的发展,硬件计算能力的同步提升,使得AIOps变得可行
AIOps RoadMap
AIOps 平台架构
代表性产品
- 腾讯Metis 是腾讯内部落地实践的智能运维场景的集合,具备多种核心能力,如智能监控、智能分析、智能决策等主要应用技术:异常检测、故障定位、瓶颈分析
- 阿里 有阿里云的强势背景,庞大的内部业务群体,同时阿里巴巴近些年一直在做技术的培养,运维实力不断加强主要应用技术:异常检测、基线预测、多维分析、智能调参
- 百度Noah 依托百度运维的多年技术积累,覆盖了包括资产管理、变更管理、故障处理等典型运维场景,可智能化地检测、识别、决策并解决服务故障等问题。7*24小时监控并维护服务,大幅提升了手工操作的安全性和执行效率应用的技术:异常检测、故障自愈
- 华为SmartIT 管理着华为全球200多个数据中心、5万多个机柜、30多万台服务器、1000+PB的数据、百万级的VM和多个异构的云环境主要应用技术:异常检测、基线预测
- 必示科技 由源自清华大学的智能运维(AIOps)团队创立,75%的成员来自于清华大学,30%的团队成员是智能运维方向的博士。致力于打造世界领先的智能运维大脑,通过机器学习等AI技术从海量监控数据中自动、快速、准确地发现问题、定位问题、预测问题等,提高企业IT系统可用性和运维效率主要应用技术:机器学习、异常检测、故障树构建
- 怀英认知 一家人工智能大数据公司及智能运维公司,致力于采用人工智能技术从海量运维数据中发现故障和找到导致故障的原因。提供智能运维解决方案:包括运维数据治理(采集日志数据、监控指标数据,对接第三方),以及日志分析产品和异常检测产品等主要应用技术:数据采集、SPL、告警、告警预测、告警抑制、资源预测、聚类分析、异常检测、根因定位
- 灵犀(LinkedSee) 灵犀致力于提供企业级IT服务,提供云计算和大数据时代的智能IT运维产品和解决方案,帮助客户优化其IT基础设施以及网络和业务的可用性,TCO和运营效率主要应用技术:数据采集、统一监控、SPL、告警、告警预测、告警抑制、资源预测、聚类分析
- 擎创 根据不同IT运维管理场景,构建应用场景边界,聚焦应用场景范围,形成企业的IT运维大数据分析场景主要应用技术:数据采集、统一监控、关联分析
- SPLUNK 大数据业内的第一个上市公司,打造的大数据产品一直是行业内标杆。ITSI是在Splunk大数据能力的基础上衍生的产品,通过添加KPI的方式监控IT流程的状态,以健康度评估的方式来预测潜在的服务中断,用异常检测来识别统计异常值并快速的找到根因主要应用技术:告警预测、多KPI警报、异常检测、根因定位、聚类分析
- 云兴维智 主要产品Cloudwiz智能运维平台,采用机器学习和人工智能技术,为各类企业数据中心、在线系统和云平台提供高智能、高性能和高可靠性的大规模运维监控和数据分析服务平台主要应用技术:统一监控、告警、告警预测、资源预测、离线数据智能分析
AIOps基础设施
解决问题:大数据存储、处理、分析和计算
1.开源数据采集技术 数据是监控报警的基石,我们在实现海量数据的分析监控前需要有一个好用的工具来收集数据。常见的有Flume、Filebeat、Logstash、Scribe等,下表是对这几款开源日志收集工具的对比,作为选择一个高可靠、高性能、占用系统资源少并且符合业务场景等特性的参考
2.分布式消息队列 消息中间件是消息传输交换的重要组件,具有发布-订阅、请求-应答、管道三个特点。对消息中间件的应用可以大大降低系统与系统之间的耦合度,同时让系统之间的业务处理异步化,分布式消息队列实现最终一致性、可扩展性、高可用性的重要基石。下表是对几款开源MQ的对比分析
- ZeroMQ 是一种基于消息队列的异步多线程网络库,介于应用层和传输层之间,提供多种传输协议的套接字。不支持数据持久化,适合高吞吐量或低延迟的场景使用,需要大量编码
- ActiveMQ 实现了JMS1.1标准,其设计目的是提供标准的、面向消息的、能够跨越多语言和多系统的应用集成消息通信中间件
- RocketMQ 一种纯Java的分布式队列模型的开源消息中间件,具有高吞吐量、高可用性、适合大规模分布式系统应用的特点
- Kafka 一个分布式流平台,具有快速持久化、高吞吐量、完全的分布式系统、自动实现负载均衡的特点,作为日志流平台和运营消息管道平台而设计,实现了消息顺序和海量堆积能力
3.大数据存储技术
- 基于HDFS的分布式存储 文件模型、关系模型、键值模型
- 分层存储 数据仓库–面向主题、集成、相对稳定、反映历史变化;数据仓库分层架构:缓冲层、操作数据层、明细层、轻度汇总层、数据集市层
4.大规模数据离线计算分析
- 经典离线计算 sed、awk、pandas
- 分布式离线计算 MapReduce
5.实时计算框架
- Spark Streaming 是一个对实时数据流进行高通量、容错处理的流式处理系统,采用微批处理方式来处理数据,支持多种数据源(Kafka、Flume等),具有容错性、实时性、高吞吐量等特点
- Flink 一个开源的分布式实时计算框架,支持状态管理机制、事件机制、窗口机制、容错机制及高吞吐量、低延迟的特点
6.时序数据分析框架 时序数据是基于时间排序的数据,再通过时间坐标将这些数据链接起来,形成折线图,能直观地展示一个指标在过去一段时间內的走势和规律,帮助定位数据异常点
时序数据库是用来存储这些时序数据的数据库,具有一下特性:高并发、高吞吐量,实时写入和读取数据;高可用性、高可靠性,分布式架构、数据分片;支持海量数据存储,一般时序数据都是TB或PB级别的体量;支持数据聚合分析,满足实时的多维聚合分析。代表性产品:InfluxDB、Graphite、OpenTSDB、Prometheus、Elasticsearch、TiDB、Druid、ClickHouse
智能运维大脑-知识图谱
智能运维领域知识图谱作为智能运维平台的“大脑”,当检测到异常发生时,“大脑”对异常做出判断和决策,控制子模块执行自修复命令,从而实现故障自愈
知识图谱 是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系。其基本组成单位是“实体-关系-实体”三元组,以及实体及其相关属性-值对,实体间通过关系互相联结,构成网状的知识结构
知识图谱架构 包括知识图谱自身的逻辑结构和构建知识图谱所采用的技术(体系)架构。从逻辑上将知识图谱划分为2个层次
- 数据层 知识以事实(Fact)为单位存储在图数据库(Graphd、Trinity等),如果以“实体-关系-实体”或者“实体-属性-值”三元组作为事实的基本表达方式,则存储在图数据库中的所有数据将构成庞大的实体关系网络,形成知识的“图谱”
- 模式层 在数据层之上,是知识图谱的核心。在模式层存储的是经过提炼的知识,通常采用本体库来管理知识图谱的模式层,借助本体库对公理、规则和约束条件的支持能力来规范实体、关系以及实体的类型和属性等对象之间的联系
从知识图谱的构建和更新角度来看,其一般技术架构如下
运维知识图谱构建流程
1.采用基于语义分析和机器学习的抽取方法对原始的运维知识数据源进行抽取,得到候选知识单元
- 对运维信息化系统进行信息自动化采集,得到原始的运维知识数据源。采集方法
- 采用分布式爬虫
- 接口调用
- 系统日志信息
- 监控数据
- 采用自然语言分析器和分类器对原始的运维知识数据源进行信息抽取,方法如下
- 通过自然语言分析器对原始的运维知识数据源中所有语句进行语法分析,形成语法树并找出每个语句中的名词短语
- 通过语法树构建语句中所有名词短语对和每对名词短语间的相关关系,形成“名词短语-相关关系-名词短语”的三元组
- 以所有三元组中的任一三元组作为当前三元组,判断是否满足候选条件,若满足,则将其标记为候选抽取的三元组,否则,将其归档暂不处理
- 采用朴素贝叶斯分类器判断候选抽取的三元组是否可信,若判断为可信,则将该候选抽取的三元组抽取出来作为可信的三元组,否则,对该候选抽取的三元组进行归档暂不处理
- 对可信的三元组进行存储和归并,得到由最终的抽取结果组成的候选知识单元。其中,最终的抽取结果只存储各个不同的三元组及各个不同的三元组出现的频次,即形如(“名词短语-相关关系-名词短语”,频次)
2.采用基于相关性和置信度的融合方法对候选知识单元进行知识融合,得到知识融合结果
- 以候选知识单元作为输入文本,对输入文本进行实体识别并生成候选实体
- 对候选实体进行实体相关性计算并构造相应的实体相关,实体相关图的顶点采用实体对象构造而成,实体相关图的边通过语言相关性权重计算后确定
- 根据构造的实体相关图进行候选实体顶点的置信度计算,得到候选实体顶点的置信度分数
- 进行候选实体与输入文本的语义相关性计算
- 根据置信度计算的结果和语义相关性计算的结果进行语义一致性计算,并根据语义一致性计算的结果得到知识融合结果
3.对知识融合结果进行加工处理,得到运维知识图谱
- 对知识融合结果进行实体并列关系相似度计算,得到运维知识实体间的并列关系相似度
- 对知识融合结果进行实体上下级关系抽取,以确定运维知识实体的上下级关系
- 对确定的所有运维实体上下级关系进行聚类,并对聚类的结果进行语义类的标定,以生成运维知识实体的本体
- 从已有的运维知识实体关系数据出发,根据运维知识实体间的并列关系相似度和运维知识实体的本体进行知识推理,得到运维知识实体间的新关联和对应的运维知识图谱
4.获取新的运维知识数据源,以对运维知识图谱进行自适应更新
- 通过对运维信息化系统进行信息自动采集实时获取新的运维知识数据源
- 对新的运维知识数据源进行预处理,并将预处理后的运维知识数据源中的数据分别标记为第一数据(与现有运维知识图谱的数据差异大于设定的差异阈值的数据)和第二数据(与现有运维知识图谱的数据差异不大于设定的差异阈值的数据)
- 以第一数据作为原始的运维知识数据源,返回采用基于语义分析和机器学习的抽取方法对原始的运维知识数据源进行抽取,得到候选知识单元;最终得到的第一数据对应的运维知识图谱,并将第一数据对应的运维知识图谱补充到运维知识图谱数据库中
- 第二数据中区别于现有知识图谱的运维知识实体和第一运维知识实体关系,并判断第二数据的时序性是否小于1,若是,则将第二数据剔除;否则,将第一运维知识实体关系标记为历史数据,然后对第一运维知识实体关系的时序性进行计算和排序,根据计算和排序结果更新现有运维知识图谱
智能运维技术详解
Ops解决了资源维护、机器和服务的基本运维与保障问题;DevOps解决的是如何构建工具和平台进行自动化,提升运维效率的问题;SRE解决的是如何保障系统具有高可用性和稳定性的问题;AIOps解决的是如何在大数据场景下对实时数据进行处理和分析,以及智能化决策问题,高效、快速、准确地捕获系统异常,进行快速诊断、预测和评估
1.数据聚合与关联技术
- 单系列时序数据聚合 对数据的聚合(计数、平均、抽样等)、对维度的聚合(监控指标的标签如”时间”、“地点”、“服务”等)
- 多系列时序数据关联 告警事件的收敛和聚合可以减少噪音和干扰,也可以确定根因、定位故障,常用方法:将告警聚合成关联“事件”、合并重复的告警、自动恢复策略、告警分类
2.数据异常点检测技术
3.故障诊断和分析策略
4.趋势预测算法
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/301697.html