2023年(Q3财年)技术部门CTO线技术人员晋升考核机试题
分布式篇-E 分布式日志采集
*参考答案*
出题人:湖北TL田超凡
答案制定:湖北TL田超凡
*****试卷启用前绝密****
1 传统日志采集存在哪些问题
答:在传统项目的生产环境中,服务器集群中存在多个不同的服务器,当生产环境需要根据服务器日志发现和定位问题的时候,只能在每台服务器上基于传统命令的方式依次查询日志,效率低下;尤其是当服务器集群中的服务器数量比较多的情况下,这种日志检索的效率非常低。
2 ELK的基本概念及其组成部分
答:
ELK的基本概念:
ELK是一种主流的分布式日志采集解决方案,ELK指的是ElasticSearch、LogStash、Kibana
ELK的组成部分:
ElasticSearch作为全文索引库,底层基于倒排索引算法存储和管理日志。
LogStash作用类似于搬运工,负责将服务器的日志搬运到ES中存储。
Kibana是ES的客户端图形化界面管理工具,开发者可以通过Kibana连接到ES实现全文日志检索和问题定位。
3 ELK的作用
答:ELK的作用是在分布式/微服务集群环境下,对每一台服务器上的日志进行统一的收集、存储和集中管理,并提供图形化管理界面方便开发者进行全文日志检索。
4 ELK实现分布式日志采集的实现原理
答:
- 每台服务器上都需要安装LogStash并完成基础配置
- 需要配置LogStash固定读取的某个日志文件
- LogStash接收到运行日志后进行解析,并转换为json格式输出到es
- ElasticSearch底层基于倒排索引机制存储和管理日志
- 开发者通过Kibana连接到ES实现全文日志检索和问题定位。
5 ELK为什么要整合Kafka
答:
- 在服务器集群环境下,当需要动态扩容的时候,每新增一台服务器就需要在新增的服务器上安装和配置一遍LogStash,步骤繁琐且效率低下。
- LogStash在读取服务器本地运行日志的时候,也会对磁盘IO的性能造成影响。
6 ELK整合Kafka实现分布式日志采集的实现原理
答:
- Springboot项目基于AOP代理技术拦截异常日志
- 将拦截的异常日志异步同步到kafka服务器端,注意一定是异步的形式,这样才能提高日志采集的效率。
- LogStash数据源作为kafka消费者订阅kafka服务器端,异步获取运行日志。
- LogStash将获取到的运行日志进行解析,转换成json格式输出到es
- ElasticSearch底层基于倒排索引机制存储和管理日志
- 开发者通过Kibana连接到ES实现全文日志检索和问题定位。