热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【阿里云MVP第五期】Elastic曾勇:Elasticsearch在智能运维领域的应用

点击有惊喜嘉宾介绍曾勇阿里云MVP、Elastic开发工程师与布道师,在分布式搜索、高性能、高可用架构、自动化运维等方面积累了超过七年的经验。曾勇是Elasticsearc

点击有惊喜


嘉宾介绍

曾勇 阿里云MVP、Elastic开发工程师与布道师,在分布式搜索、高性能、高可用架构、自动化运维等方面积累了超过七年的经验。曾勇是Elasticsearch国内首批用户,自2010年起就开始接触Elasticsearch并投入到生产环境中使用,并编写过一系列的中文处理相关的插件。

智能运维从概念走向应用

人工智能是当前很火热的话题,无AI不科技。在运维领域如何同人工智能结合,业界也正在不断探索。理想的世界里,运维工程师可以悠闲的喝咖啡,所有的运维工作都由机器帮忙搞定。这只存在与概念层面,实际上,落地的应用还需要较长的时间。如何落地,在哪些运维的点上可以尝试人工智能,这就是我们今天讨论的重点。

运维的痛点

运维在一个公司里面人不多,但是事情又特别杂,涉及到很多方面,包括最基本的IT运维,服务器的运维,公司内网等基础设施的监控,安全等。今天我们重点聊运维监控这块的。

海量且复杂数据的挑战

如今需要我们管理的设备数量多,数据类型复杂,比如各种应用软件、OA系统、ERP系统,网络硬件、服务器、交换机,也包括考勤机或者是摄像头等传感设备。特别是在现在万物互联的时代,物联网行业一些设备量非常非大,比如弱电设备也会产生很多很多的数据,甚至电表,每天会上报各种各样的数据。举一个电信行业的用户案例,他们正在做新一代的面向水电表的物联网,家里的每一个水表,每一天都会产生海量的数据,归集到一个区域或一个时间段内,数据规模是非常非常大的,几十亿上百亿的数据量。

设备运行状态预测

另一个关键是做到设备运行状态的监控,能够预测到设备的异常。保证正常的为你的企业,为你的客户在服务,这个是运维很关心的一个点。我们收集到设备状态数据之后,可以通过多维度的报表,直观的的了解到设备的运行信息。在ELK的体系里,我们使用Kibana来实现可视化和业务告警。当设备出现异常的时候,我们需要第一时间发现,比如服务器CPU占用飙升30%,或者说磁盘有问题了,可以迅速的从这些海量指标里面定位出来,并辅助我们判断和解决问题。

合理方案的选择

要解决上述问题,必须先考虑一些关键点。我简单列了一些关键字,如下图所示。
basics_v3
第一个,数据接入的问题。各种各样的数据源,通过各种各样的渠道,接进来之后,海量的数据,怎么处理,怎么有效的处理,怎么实时的处理。
第二个,数据处理和分析的问题。数据拉进来之后要去分析,怎么把这个数据利用起来,发现里面的问题。
第三个,系统稳定性的问题。系统需要监控起来,所有的东西需要找到里面存在的一些问题,不能说等你的服务器已经宕机了,我的业务都已经挂掉了,这个时候再去发现问题。
第四个,一些衍生的需求。如可视化、告警灯。比如说我怎么去更方便的可视化去分析。做数据探索,去海量的数据里面去找到你感兴趣的东西。

Elastisearch:海量数据的实时分析

当然刚刚说的这些痛点,Elastic都可以帮你去解决,Elasticsearch比较擅长海量数据处理和实时分析。
basics_v3

监控指标的收集

运维主要几个任务,首先就是监控指标的收集,数据从各个渠道收集起来。Elastic提供了多种收集工具,包括Metricbeat、Filebeat、Auditbeat、Logstash来收集应用软件、云环境、安全、网络等系统的日志数据。
basics_v3

监控数据的存储

目前大部分的数据收集任务用Elastic都可以帮你去解决。然后第二个是存储,存储这一块也不想说太多,Elasticsearch目前在业界TB级别的一点问题没有,很多客户都是每天有海量的数据接进来,每天几百万,几千万都可以支撑,数据规模也相应的会去做一些扩容,这个是支持的。看一下告警,告警这个说实话,我们得到分析的结果之后我们可以去通知,这个说实话也很好做,我们自己也有一个高级引擎,后面有嘉宾同学会进行介绍。

监控数据的分析

重点介绍监控数据的分析。通用的做法是,第一步数据拉过来,Kibana配置Dashboard,然后投影到电视屏幕上。这个可以称为运维的1.0。从最开始的人肉运维,到自动化运维,再到现在的智能运维。其目的就是高效运维,以最少的时间最快的速度去发现问题,可视化如果仅仅停留在看得到这个层面,其实没意义。

basics_v3
上图所示一台服务器的CPU指标,仅仅CPU本身就会收集到这么多指标,比如CPU的空闲时间、使用负载,但是收集起来你会发现很多,几千个指标,或者把它缩一下变几百个,CPU这么复杂了,加上其他的一些业务数据的指标,各种各样的网络设备数据,几万个都是一个保守的估计,但这只是一台服务器。如果你有很多台服务器,如果说把他们去怎么分析。你可能把所有的服务器放到一起做了一个Group,这样其实是有很多噪声的。或者做了一个平均、最大值最小值,但是你只要做到一个最大值最小值或者是平均,它里面就会丢失一部分数据。设想,一平均之后,中间如果有异常数据就发现不了。看到一个整体趋势是可以的,但是某一台服务器就是有问题,发现不了的。
再举硬盘的例子,从指标里面可以反应出来硬盘性能的衰退,但常规指标粗线条是很难发现会有问题的,如果能分析到某一台服务器的,某一个硬盘的,某一堆硬盘里面的某一个硬盘它的健康状况什么样子的,那你就可以知道非常细腻度的监控,当它出问题的时间你可以第一时间发现它,可能还没有出现问题,但是快出问题了,把它找到,然后及时处理,这样的话可以第一时间把这个问降低到最低。接下来,说一下Elastic如何使用机器学习来帮助做运维检测。

Elastic中的机器学习

首先我们看一下监控数据吧,主要分为三大类,第一个就是日志loging,服务器里面,产生一个行为就会记录一条日志。第二类,tracing info更偏向于应用的分析,可能跟更详细的一些调用这种东西。第三个是指标信息,服务器的CPU、负载、百分比、占有情况等等这是第三类。他们都有一个共同点,都具有实时性。

basics_v3

实时性数据顾名思义,都是跟时间相关的,可以看到里面可以放在一个时间轴上面的。首先可以看到它是有规律的,随着时间的变化它是有一些前后的一个关联性的。基于时间的数据可以做预测,服务器指标以前的一个工作情况什么样子的,可以预测它明天,应该是一个什么样的工作情况,今后一段时间如果没有出什么问题的情况下,它应该就是怎么工作,它的指标应该是这么表现。

我们可以做一个关联,我们可以看到这是一个指标,表示每分钟的一个请求数,下面是另外一个指标,一个网站的一个状态码,可以看到,这个是两个指标,他们都是在一个时间轴上面,当某一个地方出问题的时候,比如说这个状态突然说以前都是200,上面是500了,是有问题了,这个时候我们发现另外一个指标也有关联性的一个改变,比如说KPS突然变这么高,他们就是有关联性的,可能是服务器突然被人大量并发的高峰期访问,或者说是恶意攻击,从而影响其他业务,是有一些关联性的,这是实时性的另外一个特点。

basics_v3

当然实时性的数据如果不做一些处理,数据的力度很细,比如每秒钟收集一条,10秒钟收集一条,数据量非常大,需要做一些组合可以看到到这个锯齿非常非常的频繁。然后做一些按时间,比如说15分钟做一组,把他们做一些预加工,做预聚合,它的曲线就会变得更加平滑,可以更好的去分析,这个是Bucket选择。然后我们可以看到三个不同的Bucket的一个分布选择,这是第一个是没有做任何的一个处理的,你看到原始数据非常非常密,基本上是看不出任何问题的,这个其实我们目前分析的方式也基本上是这样,一个图出来,各种线条都在一起,很密,我就知道它这里面都是比较平的一条曲线,没什么问题,看到起来很好。然后我再把它做一些组合之后会发现,其实里面有一个比较规律的一个波动的,然后在进一步做合并之后,再放大,曲线时间再放大会发现他们更加明显,可以看到这个时间点它的锯齿变化更加的不一样。这里面其实可能是存在潜在的一个异常,所以经过调整之后其实就可以发现里面存在的一些问题。第一个就是一个比较粗线条的一个分析,大家正在做的一个,大部分公司都是这种方式。

basics_v3

对实时性数据做Bucket是一种方式,再看看Elastic使用无监督学习怎么去做。它可以帮你去学习你的某一个指标,历史的一个行为是什么样子的,比如说服务器的CPU指标,过去是怎么工作的,可能就是这么一个行为,它可以自动帮你去学习,自动帮你去构建这么一个模型,但某一天这个行为出现变化的时候可以识别出来,然后自动告诉你这个时间点这个数据是不对的,你可以去有这么一个警告,发现这个地方可能会出现问题,做进一步的处理,这个就是我们的Elastic机器它可以帮你做的事情。

把序列化的指标特征化,模型化,可以让它24小时的在后台帮你去检测,服务器的每一个指标。当指标有几百上千万个指标,当有很多台服务器,每一个服务器的行为又是不一样的,可以把它理解为每一个服务器是独立的个体,它的服务器的性能不一样,就算是同一批机器它的性能都是不一样,它的磁盘也是不一样,磁盘的生产时间也不一样,只要是生产时间有一点点变化,最终的质量都不一样,生命周期也就不一样,所以说以他们每一个系列为单位,分别去检测他们的一个运行的指标,然后去看,是不是正常,当不正常的时候可以第一时间帮你告警,这是自动的,机器可以帮你去做这种它擅长做的事情,这就是我们可以利用机器学习帮你去解放你的运维。下面是几个Demo的截图。(在线Demo即将上线,敬请期待!)

basics_v3

basics_v3


点击有惊喜




推荐阅读
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文深入解析了 Kubernetes 控制平面(特别是 API 服务器)与集群节点之间的通信机制,并对其通信路径进行了详细分类。旨在帮助用户更好地理解和定制其安装配置,从而增强网络安全性,确保集群的稳定运行。 ... [详细]
  • B站服务器故障影响豆瓣评分?别担心,阿里巴巴架构师分享预防策略与技术方案
    13日晚上,在视频观看高峰时段,B站出现了服务器故障,引发网友在各大平台上的广泛吐槽。这一事件导致了连锁反应,大量用户纷纷涌入A站、豆瓣和晋江等平台,给这些网站带来了突如其来的流量压力。为了防止类似问题的发生,阿里巴巴架构师分享了一系列预防策略和技术方案,包括负载均衡、弹性伸缩和容灾备份等措施,以确保系统的稳定性和可靠性。 ... [详细]
  • 本文深入探讨了如何选择适合业务需求的MySQL存储引擎,详细解析了不同存储引擎的特点、适用场景及其在数据存储和管理中的优势。通过对比InnoDB、MyISAM等主流引擎,为读者提供了全面的技术指导和专业建议,帮助开发者在实际应用中做出明智的选择。 ... [详细]
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
  • 本文深入解析了Django框架中的MVT(Model-View-Template)设计模式,详细阐述了其工作原理和应用流程。通过分析URL模式、视图、模型和模板等关键组件,读者将全面理解Django应用程序的架构体系,掌握如何高效地构建和管理Web应用。 ... [详细]
  • 当前物联网领域十大核心技术解析:涵盖哪些关键技术?
    经过近十年的技术革新,物联网已悄然渗透到日常生活中,对社会产生了深远影响。本文将详细解析当前物联网领域的十大核心关键技术,包括但不限于:1. 军事物联网技术,该技术通过先进的感知设备实现战场环境的实时监测与数据传输,提升作战效能和决策效率。其他关键技术还包括传感器网络、边缘计算、大数据分析等,这些技术共同推动了物联网的快速发展和广泛应用。 ... [详细]
  • 本文探讨了利用Python编程语言开发自动化脚本来实现文件的全量和增量备份方法。通过详细分析不同备份策略的特点,文章介绍了如何使用Python标准库中的os和shutil模块来高效地管理和执行备份任务。此外,还提供了示例代码和最佳实践,帮助读者快速掌握自动化备份技术,确保数据的安全性和完整性。 ... [详细]
author-avatar
201153蜡笔小新
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有