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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 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折起

入口六:低价特惠建站

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
26天前
|
机器学习/深度学习 运维 监控
智能监控系统在运维中的应用与优势
传统的运维管理方式在面对日益复杂的IT系统时显得力不从心,智能监控系统的出现为运维工作带来了新的机遇。本文将探讨智能监控系统在运维中的应用与优势,介绍其工作原理以及如何有效地利用智能监控系统提升运维效率和质量。
47 2
|
1月前
|
运维 监控 安全
现代化运维管理系统的关键特征与实践指南
在当今数字化时代,现代化运维管理系统正日益成为企业提升效率、降低成本的关键工具。本文将深入探讨现代化运维管理系统的关键特征,以及实践指南,帮助企业更好地应对技术挑战,提升运维效率。
|
1月前
|
人工智能 运维 监控
现代化运维管理系统的关键性作用与挑战
随着信息技术的快速发展,现代化运维管理系统在企业中扮演着越来越重要的角色。本文将探讨现代化运维管理系统的关键作用和面临的挑战,帮助读者深入了解该领域的发展趋势。
|
1月前
|
人工智能 运维 监控
现代化运维系统的关键技术与挑战
随着信息技术的快速发展,现代化运维系统成为企业管理的重要组成部分。本文将探讨现代化运维系统中的关键技术和面临的挑战,从自动化运维、容器化技术到监控与安全性等方面展开讨论,帮助读者更好地理解和应对运维领域的挑战。
|
1月前
|
运维 Prometheus 监控
构建高效自动化运维系统的关键策略
【2月更文挑战第30天】随着云计算和微服务架构的兴起,现代IT运维环境变得愈加复杂多变。为保持业务连续性、提高响应速度并降低成本,企业亟需构建一个高效的自动化运维系统。本文将深入探讨自动化运维系统构建过程中的关键策略,包括工具和技术选型、流程优化、监控与告警体系搭建以及持续集成/持续部署(CI/CD)实践,旨在为读者提供一个清晰的构建蓝图和实用的实施建议。
|
2月前
|
存储 监控 数据可视化
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
241 0
|
1月前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
16天前
|
消息中间件 存储 运维
更优性能与性价比,从自建 ELK 迁移到 SLS 开始
本文介绍了 SLS 基本能力,并和开源自建 ELK 做了对比,可以看到 SLS 相比开源 ELK 有较大优势。
54768 133
|
1月前
|
运维 监控 数据可视化
现代化运维管理系统的关键特性及实践应用
随着信息技术的迅猛发展,现代企业对于运维管理系统的需求日益增长。本文将探讨现代化运维管理系统的关键特性,以及在实际应用中的重要性和优势所在,帮助企业更好地理解和应用现代化运维管理系统。
15 2
|
1月前
|
运维 监控 Cloud Native
现代化运维管理系统的关键技术与应用
随着信息技术的不断进步,现代企业对运维管理系统的需求日益增长。本文将重点探讨现代化运维管理系统所涉及的关键技术,包括自动化运维、云原生架构、容器化技术等,并分析这些技术在实际应用中的优势和挑战。