开发排查系统问题用得最多的手段就是查看系统日志,在分布式环境中服务的日志分散在多台服务器上而且同一个服务又各自有多个实例做集群,并且生产环境的日志都是刷新非常快的,一个请求往往需要调用多个服务如何通过某条异常日志在全链路中找出相关联的上下文日志信息进行整体分析定位呢?所以开发人员如果通过传统的方式使用日志定位线上问题非常困难并且效率低下!
ELK
是目前主流的实时日志处理方案;整个 Elastic Stack
生态主要包括以下几个组件:
本课程会带着大家由浅入深地学习最新版本的 Elastic Stack
共分为 6 个部分,分别是:
前面 4 个部分为原理与基础知识为主,让大家先熟悉每个组件的作用、部署以及基本的使用和调试,为后面实战打下基础,让大家达到知其然知其所以然。
而实战案例部分会以一个真实线上分布式系统所使用的日志格式为规范,结合 Spring Cloud 工程来模拟微服务输出日志数据,然后带着大家结合前面学到的基础知识一步步的从 实时采集系统日志
、结构化日志数据
到 图形化数据分析
完整的落地日志系统;最后会以场景化的方式,让大家掌握常用的通过 日志
和 调用链
排查问题的手段。
由于随着系统运行时间的增长,采集日志的数据量会越来越多,这样会导致 Elasticsearch 的压力非常大,不仅会占用大量的磁盘和内存资源,而且也会影响 Elasticsearch 的查询性能,所以在最后部分我们会学习一些自动化的运维手段,对日志数据进行全生命周期的管理。