开发者学堂课程【开源 Elasticsearch技术训练营:训练营第三课——感知全观测能力】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/898/detail/14315
训练营第三课——感知全观测能力
内容简介:
一、实现全观测的主要流程
二、Elastic Stack提供全套工具来采集观测数据
三、数据处理工具
四、全观测实例
五、全观测定位故障流程图
六、机器学习告警
七、APM查看分布式调用
八、仪表板综合分析
九、指标关联日志 APM
十、流式日志分析器
一、实现全观测的主要流程
分为数据采集阶段数据处理数据搜索存储和可视化这么几个大的这个步骤,那么从数据采集这个地方,可以看到这个地方,用各种工具去采集我们的日志,去采集指标去采集PM,那么采集到这个数据像kafka,
这个是在真实项目当中经常会用到这个数据的汇聚层,因为这个采集的数据一个是量非常之大,
所以,首先要能够保证他有一个可靠的落盘的地方,所以kafka是经常被使用的这个工具,产量数据可以比较,以经济连带的方式进入到这个卡不卡先能够安全的罗盘。
那么从数据处理层,工具就非常非常多了,相比较XX里的 last,他可以从卡进行消费,那么呢,还有像 spark flink 这种流式处理,他也可以从卡里进行消费,然后还有一些像 APM server,因为PM数据的,它是有特定的这个结构的,所以一般会有ATM 专门的 APM server,
也可以从卡里面去进行数据的消费,那么他经过各种各样的这个数据处理,经过流失的处理,或者经过这个正则匹配,经过 APM server 的这个数据加工,最后会流入到我们的数据存储层,那么也来这个社区里边会对数据进行索引,这样最后一步,是进行这样可视化的展现,
那么可以再提拔上去进行可视化,也可以用第三方的呃工具进行这样的可视化。
二、Elastic Stack 提供全套工具来采集观测数据
这个 stack 提供的啊数据采集方面的全套的这个工具,这个 beats,
其实还是很丰富的,file beat 被广泛地用来去采集日志数据,那么 file beat 里边,它会有30多个插件,他可以做到一定程度上的开箱即用,那么像Mac壁纸是给大家去采集指标和性能数据的,也会有40多个插件可以帮大家去采集一些知名的,服务器的这个性能指标,也包括我们的操作系统底层的这些性能指标,还有包括像我们现在的 K8S,还有刀客的这些性能指标。
那么 Macb 都可以去帮大家去采集,那么后面,我们也会有这个 P 壁纸, NB 他是从网络包的层面给大家去采集相关的这个统计的数据,它主要是在我们的云端去对接云端,这个吐出来的一些指标,日志,那么同样围绕壁纸。
它主要是适配我们 Windows 上的这个日志系统,还有哈比的例子的,它主要是用来就是监测我们服务的可用性,主要是指我们HP呀这些提供的服务也好,或者是我们的API也好,可以通过这个哈比特的这个形式来进行这样的监控。
三、数据处理工具
1.Logstash 定义:
是一个处理管道分为三部分、输入、过滤:体现数据的加工和处理、输出
社区提供了各种各样的这个 BT,那么在数据处理部分,原来这个提供给大家的是log stash 这样的组件,lock size 它其实就是一个处理的管道,这个处理管道,
它其主要分为三部分,就是输入,过滤,还有输出,那么 sight,其实并不是一个这个专属于也来这个社区的这么一个数据接入和输出的这么一个东西,其实他从数据接入来讲它可以接入很多的这个数据源比如说从文件,Seas log,还有 ready 输出,其实他也是同样,他可以输出到这个社区,但也可以输出到其他的一些知名的这个软件。
甚至包括数据库也是可以的,那么像招聘,像那个当中的future的话,数据过滤组件,这个地方主要是体现在于数据的加工和处理,那么比较知名的像rock进,进行我们正泽的这个抽取,还有很多这个插件提供给大家做数据的这个修改,比如说丢弃,这些功能,那么 locked,在处理起来还是比较方便的,它可以很容易地帮你把这个特别像日志这样一个流逝的文本把它抽取成 json 的这种,结构化的这个数据,进而给后面ex社区进行这个存储,索引和搜索。
2. 数据存储搜索
(1)、倒排序支持的全文搜索
我们也来个社区来提供的这个核心的功能,从其实经过了一个演变,它从最早的只支持就是说,从道台的这样一个数据结构,那个时候他只支持这个全文的搜索,他一步一步演变,包括支持列的存储,那样的话,对于我们这个排序啊聚合啊,他不给从倒排的这样一个数据结构,在我们比较新的这个版本里,在提拔那这个里边,我们是植入了一个新的这样的一个这个告警的这个系统,这个告警系统,跟原来的来这个社区的这个 watcher,还是有一点点差别的,Watcher的,他是在也来这个社区那边去进行执行的,那么在这边,他是有批发,那去做了一个这个规则的执行引擎,这个告警工作。
那么这个新的告警系统引,主要是为了跟各种我们上面的各种APP,各种解决方案进行一个无缝的这样一个整合,并且大幅度的简化它的那个使用的门槛,这个的话基本种各样的这个应用里边,可以看到他有便捷的这个入口,可以帮大家去很容易的去创建这个告警。
(2)、列存储支持的结构化数据
(3)、监控告警
全观测的解决方案需要大量规则的执行引擎进行观测和告警,不可缺少,这个新的告警系统是为了各种 APP 和解决方案无缝的整合,并且降低使用的门槛,有便捷的入口去帮助大家去创建这个告警
3、机器学习异常检测
●使用无监督的机器学习技术,通过对历史数据建模来学习“正常”的范围,无需人工标注数据
●当数据超出“正常”范围的时候检测异常
●随着数据的发展而变化一 模型不断学习持续更新
●影响因素检测一 加速识别根本原因
4. 数据分析和展示
Kebala 经过一系列展示从没有什么展示能力转化为很多可视化简便的能力,它也会持续改变提升技术,目的帮助大家很容易对es里面的程序很方便的呈现和展示出来。
四、全观测实例
1.将日志、指标、APM 数据在一个平台统一分析
2.可以建立统一的可视化视图、对齐时间、统一过滤条件
3.建立统一的基于规则的监控和告警,关联多个数据源
4.建立统一的机器学习的智能监控和告警
5.典型的微服务架构
6.全部在 K8s 容器化环境中部署
7.每种服务都有多个实例
8.前端:基于 Nodejs 提供 Web 服务
9.核心业务:基于 Spring 框 架的 Java 服务,连接后端
10.MySQL 数据库
11.API服务:基于 Python Flash 提供地址查询的 Rest API 服务,连接 Elasticsearch 服务器
12.Filebeat 采集日志
13.Metricbeat 采集指标
14.Packetbeat 采集网络包数据
15.APM agent 采集应用性能信息
16.所有数据汇总到 Elasticsearch 集群
17.使用机器学习进行监控和告警
五、全观测定位故障流程图
从故障告警到定位故障,首先收到机器学习告警,点链接就会来到kebala 的分析平台,它会把很多机器学习的任务排列一起,把它们的告警全部对齐,更容易帮我们分析服务中的状态,以及它们的依赖关系等等。看到告警后可以进行排查,跳转到其他的应用平台去侦测故障发生时刻,从很多微观层面看到一些问题,也可以带我们到专门的指标上,看到一些基础结构整体架构是什么样的
六、机器学习告警
来到我们的机器学习的告警页面,每一行代表了我们机器学习的任务,当我们观察某一行告警的时候,它比平常有九倍的差异,下面可以看到指标平常是比较低的,这个时候出现了峰值的情况。Action 可以引导我们很方便的去其他的指标,应用里面进行统一的定位分析查找,
七、APM 查看分布式调用
从 apm 层面去观测,除了能看到 apm 层面的延迟情况吞吐量情况,下面还能罗列 api 层面的性能状况,还能排列影响大小的情况,当我们点进 apo 之后还能看见具体从代码层面分布式情况下,怎么样去调用堆站,不仅仅每个服务存在多个实例,而且分属在不同的物理服务器上,所以有了这个工具,它就可以把一个服务流经的处理环节串联在一起,这就是所谓的分布式追中。当我们点进去看每一个条,里面还有很多对应丰富的数据
八、仪表板综合分析
这个综合的仪表板,我们收到故障调到综合仪表板,会把故障的时间点放在最中间,我们可以看到故障的性能状况前后,这些图片可以来自我们的 apm,也可以来自我们的指标,日志。这样就可以更好的帮我们定位性能错误所在
九、指标关联日志 APM
在专门的性能指标里,可以从主机角度,虚拟机,物理机角度去观看我们性能的切片,也可以从 dock 的容器里面看到,这也体现解决方案里联动的灵魂所在,当我们去指标的应用里面点击某一个po 里面去它也以看我们性能日志,性能指标,甚至它可以帮你跳到安排吗的 chuisi 里面,把这些都串联起来。它的优点就是能够在一个平台可以很灵活方便的在日志里面来回的跳转,方便的定位位置所在。
十、流式日志分析器
只要当我把服务器里面的日志全部汇总到es里面后,这个流逝的日志服务器就是所有服务器所有应用很庞大的日志流,完全精确的按照时间排列,这个日志流就很难滚到边,因为它很大。还有最强大的功能,是在旁边的搜索框,任何符合es搜索语句的东西都可以写在里面,那么从指标里面跳转过来时,我们要看某一个pot的日志流, 当我们跳转过来时候,他会把这个id自动显示在条件里面,也就会把全部的日志流罗列起来, 更强大的是我们可以用end条件继续进行过滤,这样我就可以看到我们故障地方,有了这个就可以帮助大家更方便的解决这个问题。