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

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
日志服务 SLS,月写入数据量 50GB 1个月
简介: 个人学习

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实时生图绘板
目录
相关文章
|
3月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
777 64
搭建ELK日志收集,保姆级教程
|
4月前
|
人工智能 运维 监控
运维也能“先演练后实战”?聊聊数字孪生的那些神操作
运维也能“先演练后实战”?聊聊数字孪生的那些神操作
122 0
|
5月前
|
缓存 Java API
Java 面试实操指南与最新技术结合的实战攻略
本指南涵盖Java 17+新特性、Spring Boot 3微服务、响应式编程、容器化部署与数据缓存实操,结合代码案例解析高频面试技术点,助你掌握最新Java技术栈,提升实战能力,轻松应对Java中高级岗位面试。
464 0
|
5月前
|
缓存 运维 安全
7天精通电商API:从接入到运维的完整实战手册
本文全面解析电商API接口技术,从基础概念到高阶应用,涵盖商品、订单、支付与营销等核心模块,并深入探讨性能优化、安全防护与智能化发展方向,助你掌握驱动数字商业的核心技术。
|
2月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
6月前
|
缓存 算法 NoSQL
校招 Java 面试高频常见知识点深度解析与实战案例详细分享
《2025校招Java面试核心指南》总结了Java技术栈的最新考点,涵盖基础语法、并发编程和云原生技术三大维度: 现代Java特性:重点解析Java 17密封类、Record类型及响应式Stream API,通过电商案例演示函数式数据处理 并发革命:对比传统线程池与Java 21虚拟线程,详解Reactor模式在秒杀系统中的应用及背压机制 云原生实践:提供Spring Boot容器化部署方案,分析Spring WebFlux响应式编程和Redis Cluster缓存策略。
157 0
|
9月前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
671 90
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
存储 监控 安全