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实现分布式日志采集的实现原理

答:

  1. 每台服务器上都需要安装LogStash并完成基础配置
  2. 需要配置LogStash固定读取的某个日志文件
  3. LogStash接收到运行日志后进行解析,并转换为json格式输出到es
  4. ElasticSearch底层基于倒排索引机制存储和管理日志
  5. 开发者通过Kibana连接到ES实现全文日志检索和问题定位。

5 ELK为什么要整合Kafka

答:

  1. 在服务器集群环境下,当需要动态扩容的时候,每新增一台服务器就需要在新增的服务器上安装和配置一遍LogStash,步骤繁琐且效率低下。
  2. LogStash在读取服务器本地运行日志的时候,也会对磁盘IO的性能造成影响。

6 ELK整合Kafka实现分布式日志采集的实现原理

答:

  1. Springboot项目基于AOP代理技术拦截异常日志
  2. 将拦截的异常日志异步同步到kafka服务器端,注意一定是异步的形式,这样才能提高日志采集的效率。
  3. LogStash数据源作为kafka消费者订阅kafka服务器端,异步获取运行日志。
  4. LogStash将获取到的运行日志进行解析,转换成json格式输出到es
  5. ElasticSearch底层基于倒排索引机制存储和管理日志
  6. 开发者通过Kibana连接到ES实现全文日志检索和问题定位。
07-14 16:14