运维工程师面试题总结-ELK日志收集与搜索分析系统实战20

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 个人学习

1. ELK是什么?

ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写 Elasticsearch:负责日志检索和储存 Logstash:负责日志的收集和分析、处理 Kibana:负责日志的可视化 这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK。

2. elasticsearch主要特点

1.实时分析

2.分布式实时文件存储,并将每一个字段都编入索引

3.文档导向,所有的对象全部是文档

4.高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas) 接口友好,支持 JSON

3. ES与关系数据库对比

ES 与关系型数据库的对比

在 ES 中,文档归属于一种 类型 (type) ,而这些类型存在于索引 (index) 中,类比传统关系型数据库 DB -> Databases -> Tables -> Rows -> Columns

关系型 数据库 表 行 列

ES -> Indices -> Types -> Documents -> Fields

ES 索引 类型 文档 域(字段)

4. ES 常用插件

head 插件:

它展现ES集群的拓扑结构,并且可以通过它来进行索引(Index)和节点(Node)级别的操作 它提供一组针对集群的查询API,并将结果以json和表格形式返回 它提供一些快捷菜单,用以展现集群的各种状态

kopf 插件

是一个ElasticSearch的管理工具 它提供了对ES集群操作的API

bigdesk 插件

是elasticsearch的一个集群监控工具 可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等

5. kibana是什么及其特点

数据可视化平台工具

灵活的分析和可视化平台

实时总结和流数据的图表

为不同的用户显示直观的界面

即时分享和嵌入的仪表板

6. logstash 特点

所有类型的数据集中处理

同模式和格式数据的正常化

自定义日志格式的迅速扩展

为自定义数据源轻松添加插件

7. ES写数据过程

客户端选择一个 node 发送请求过去,这个 node 就是 coordinating node(协调节点)。

coordinating node 对 document 进行路由,将请求转发给对应的 node(有 primary shard)。

[路由的算法是?]

实际的 node 上的 primary shard 处理请求,然后将数据同步到 replica node。

coordinating node 如果发现 primary node 和所有 replica node 都搞定之后,就返回响应结果给 客户端。

image.png

8. es 读数据过程

可以通过 doc id 来查询,会根据 doc id 进行 hash,判断出来当时把 doc id 分配到了哪个 shard 上面去,从那个 shard 去查询。 客户端发送请求到任意一个 node,成为 coordinate node。 coordinate node 对 doc id 进行哈希路由,将请求转发到对应的 node,此时会使用 round-robin随 机轮询算法,在 primary shard 以及其所有 replica 中随机选择一个,让读请求负载均衡。 接收请求的 node 返回 document 给 coordinate node。 coordinate node 返回 document 给客户端。 写请求是写入 primary shard,然后同步给所有的 replica shard;读请求可以从 primary shard 或 replica shard 读取,采用的是随机轮询算法。

9. Elasticsearch是如何实现Master选举的

Elasticsearch的选主是ZenDiscovery模块负责的,主要包含Ping(节点之间通过这个RPC来发现彼此) 和Unicast(单播模块包含一个主机列表以控制哪些节点需要ping通)这两部分; 对所有可以成为master的节点(node.master: true)根据nodeId字典排序,每次选举每个节点都把自己 所知道节点排一次序,然后选出第一个(第0位)节点,暂且认为它是master节点。 如果对某个节点的投票数达到一定的值(可以成为master节点数n/2+1)并且该节点自己也选举自己,那这个 节点就是master。否则重新选举一直到满足上述条件。 master节点的职责主要包括集群、节点和索引的管理,不负责文档级别的管理;data节点可以关闭http功 能。

10. Elasticsearch是如何避免脑裂现象的

当集群中master候选的个数不小于3个(node.master: true)。可以通过discovery.zen.minimum_master_nodes 这个参数的设置来避免脑裂,设置为(N/2)+1。 这里node.master : true 是说明你是有资格成为master,并不是指你就是master。是皇子,不是皇帝。 假如有10个皇子,这里应该设置为(10/2)+1=6,这6个皇子合谋做决策,选出新的皇帝。另外的4个皇子, 即使他们全聚一起也才四个人,不足合谋的最低人数限制,他们不能选出新皇帝。 假如discovery.zen.minimum_master_nodes 设置的个数为5,有恰好有10个master备选节点,会出现 什么情况呢?5个皇子组成一波,选一个皇帝出来,另外5个皇子也够了人数限制,他们也能选出一个皇帝来。 此时一个天下两个皇帝,在es中就是脑裂。 假如集群master候选节点为2的时候,这种情况是不合理的,最好把另外一个node.master改成false。如 果我们不改节点设置,还是套上面的(N/2)+1公式,此时discovery.zen.minimum_master_nodes应该设 置为2。这就出现一个问题,两个master备选节点,只要有一个挂,就选不出master了。 我还是用皇子的例子来说明。假如先皇在位的时候规定,必须他的两个皇子都在的时候,才能从中2选1 继承 皇位。万一有个皇子出意外挂掉了,就剩下一个皇子,天下不就没有新皇帝了么。

11. 编码转换解决中文乱码

方案1:input中的codec=>plain转码:将GB2312的文本编码,转为UTF-8的编码。

codec => plain {

charset => "GB2312" }

方案2:在filebeat中实现编码的转换

filebeat.prospectors:

- input_type: log paths:

- /data/log/performanceTrace.txt

encoding: GB2312

如果想上手操作的同学们可以通过阿里云ecs服务器免费试用参与或低价购买专属于自己的服务器入口如下

入口一:新老同学免费试用

入口二:新人服务器特惠礼包

入口三:大学生版低价特惠服务器

入口四:云服务器首购特惠&免费试用

入口五:云服务器特惠1.5折起

入口六:低价特惠建站

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
10月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
882 122
基于docker搭建监控系统&日志收集
|
10月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
1366 64
搭建ELK日志收集,保姆级教程
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
|
10月前
|
机器学习/深度学习 运维 监控
运维日志里的“读心术”:深度学习能看出啥?
运维日志里的“读心术”:深度学习能看出啥?
445 74
|
10月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
1190 2
|
消息中间件 运维 监控
智能运维,由你定义:SAE自定义日志与监控解决方案
通过引入 Sidecar 容器的技术,SAE 为用户提供了更强大的自定义日志与监控解决方案,帮助用户轻松实现日志采集、监控指标收集等功能。未来,SAE 将会支持 istio 多租场景,帮助用户更高效地部署和管理服务网格。
741 51
|
数据采集 运维 监控
数据采集监控与告警:错误重试、日志分析与自动化运维
本文探讨了数据采集技术从“简单采集”到自动化运维的演进。传统方式因反爬策略和网络波动常导致数据丢失,而引入错误重试、日志分析与自动化告警机制可显著提升系统稳定性与时效性。正方强调健全监控体系的重要性,反方则担忧复杂化带来的成本与安全风险。未来,结合AI与大数据技术,数据采集将向智能化、全自动方向发展,实现动态调整与智能识别反爬策略,降低人工干预需求。附带的Python示例展示了如何通过代理IP、重试策略及日志记录实现高效的数据采集程序。
684 7
数据采集监控与告警:错误重试、日志分析与自动化运维