ELK Stack 教程:什么是 Kibana, Logstash & Elasticsearch?
什么是 ELK Stack?
- 麋鹿栈 是三个开源产品的集合——Elasticsearch、 Logstash和 Kibana。ELK 堆栈提供集中日志记录,以便识别服务器或应用程序的问题。它允许您在一个地方搜索所有日志。它还有助于通过在特定时间范围内连接日志来查找多台服务器中的问题。
- E 代表ElasticSearch:用于存储日志
- L 代表 LogStash:用于运输以及处理和存储日志
- K 代表 Kibana:是一个 可视化工具 (Web 界面),通过 Nginx 或 Apache 托管
ElasticSearch、LogStash 和 Kibana 均由 Elastic 公司开发、管理和维护。
ELK Stack 旨在允许用户从任何来源、任何格式获取数据,并实时搜索、分析和可视化这些数据。
麋鹿栈 Archi质地
现在,在本 ELK 堆栈教程中,我们将了解 ELK 架构:
以下是 ELK stack 的简单架构
- 日志: 识别需要分析的服务器日志
- Logstash: 收集日志和事件数据。它甚至解析和转换数据
- 弹性搜索: 转换后的数据来自 Logstash is 存储、搜索和索引。
- Kibana: Kibana 使用 Elasticsearch DB 进行探索、可视化和共享
但是,还需要一个称为 Beats 的组件或数据收集。这导致 Elastic 将 ELK 重命名为 Elastic Stack。
在处理大量数据时,您可能需要 Kafka、RabbitMQ 来进行缓冲和恢复。为了安全起见,可以使用 nginx。
现在在这个 Elastic stack 教程中, 让我们深入了解所有这些开源产品:
什么是弹性搜索?
Elasticsearch 是一个 NoSQL数据库。它基于 Lucene 搜索引擎,使用 RESTful APIS 构建。它提供简单的部署、最大的可靠性和易于管理。它还提供高级查询以执行详细分析,并集中存储所有数据。它有助于快速搜索文档。
Elasticsearch 还允许您存储、搜索和分析大量数据。它主要用作底层引擎,为完成搜索要求的应用程序提供支持。它已被用于现代网络和移动应用程序的搜索引擎平台。除了快速搜索外,该工具还提供复杂的分析和许多高级功能。
Elastic Search 的功能
- 开源搜索服务器使用 Java
- 用于索引任何类型的异构数据
- 具有带 JSON 输出的 REST API 网络界面
- 全文搜索
- 近实时 (NRT) 搜索
- 分片、可复制、可搜索的 JSON 文档存储
- 无模式、基于 REST 和 JSON 的分布式文档存储
- 多语言和地理位置支持
Elasticsearch 的优势
- 存储无模式数据并为数据创建模式
- 借助多文档 API 逐条处理数据记录
- 执行过滤和查询数据以获取见解
- 基于Apache Lucene并提供RESTful API
- 提供水平可扩展性、可靠性和多租户功能,以便实时使用索引,从而加快搜索速度
- 帮助您垂直和水平扩展
Elastic Search 中使用的重要术语
现在,在本 ELK 教程中,让我们了解 ElasticSearch 中使用的关键术语:
按揭年数 | 用法 |
---|---|
Cluster | 集群是节点的集合,它们共同保存数据并提供联合索引和搜索功能。 |
Node | 节点是 elasticsearch 实例。它在 elasticsearch 实例启动时被创建。 |
索引 | 索引是具有相似特征的文档的集合。例如,客户数据、产品目录。它在执行索引、搜索、更新和删除操作时非常有用。它允许您在一个集群中定义任意数量的索引。 |
文件 | 它是可以索引的基本信息单元。它以 JSON(键:值)对的形式表示。'{“user”:“nullcon”}'。每个文档都与一个类型和一个唯一的 ID 相关联。 |
碎片 | 每个索引都可以拆分成多个分片,以便分发数据。分片是索引的原子部分,如果您想添加更多节点,可以将其分布在集群中。 |
什么是 Logstash?
Logstash 是数据收集管道工具。它收集数据输入并输入到 Elasticsearch 中。它从不同的来源收集所有类型的数据,并使其可供进一步使用。
Logstash 可以统一来自不同来源的数据,并将数据规范化到所需的目标。它允许您清理和民主化所有数据,以便分析和可视化用例。
它由三个部分组成:
- 输入:传递日志并将其处理成机器可理解的格式
- 筛选:执行特定动作或事件的一组条件
- 输出: 处理事件或日志的决策者
特点 Logstash
现在,在本 LogStash 教程中,让我们了解 LogStash 的功能:
- 事件通过内部队列在每个阶段传递
- 允许对日志进行不同的输入
- 过滤/解析您的日志
优势 Logstash
- 提供集中数据处理
- 它分析各种结构化/非结构化数据和事件
- ELK LogStash 提供插件来连接各种类型的输入源和平台
什么是 Kibana?
Kibana 是一个数据可视化工具,它完善了 ELK 堆栈。此工具用于可视化 Elasticsearch 文档,并帮助开发人员快速了解它。Kibana 仪表板提供各种交互式图表、地理空间数据和图形,以可视化复杂的查询。
它可用于搜索、查看和与存储在 Elasticsearch 目录中的数据交互。Kibana 可帮助您执行高级 数据分析 并以各种表格、图表和地图的形式直观地显示您的数据。
在 Kibana 中,有不同的方法可以对数据执行搜索。
以下是最常见的搜索类型:
搜索类型 | 用法 |
---|---|
自由文本搜索 | 用于搜索特定字符串 |
字段级搜索 | 用于搜索特定字段内的字符串 |
逻辑陈述 | 它用于将搜索组合成一个逻辑语句。 |
邻近搜索 | 它用于搜索特定字符接近度内的术语。 |
现在,在这个 Kibana 教程中,让我们了解 Kibana 的重要功能:
Kinbana 的特点:
- 强大的前端仪表板,能够可视化来自弹性集群的索引信息
- 支持实时搜索索引信息
- 您可以搜索、查看和与存储在 Elasticsearch 中的数据进行交互
- 执行数据查询并在图表、表格和地图中可视化结果
- 可配置仪表板,用于对 elasticsearch 中的 logstash 日志进行切片和切块
- 能够以图形、图表等形式提供历史数据。
- 易于配置的实时仪表板
- Kibana ElasticSearch 支持实时搜索索引信息
Kinbana 的优点和缺点
- 轻松可视化
- 与 Elasticsearch 完全集成
- 可视化工具
- 提供实时分析、图表、汇总和调试功能
- 提供直观且用户友好的界面
- 允许共享搜索到的日志快照
- 允许保存仪表板并管理多个仪表板
为什么要进行日志分析?
在基于云的环境中,基础架构、性能和隔离非常重要。云中虚拟机的性能可能因系统中的特定负载、环境和活跃用户数量而异。因此,可靠性和节点故障可能成为一个重大问题。
日志管理平台 可以监控上述所有问题,以及处理操作系统日志、NGINX、IIS 服务器日志(用于网络流量分析)、应用程序日志和 AWS 上的日志(Amazon Web服务).
日志管理可帮助 DevOps 工程师、系统管理员做出更好的业务决策。因此,通过 Elastic Stack 或类似工具进行日志分析非常重要。
ELK 与 Splunk
麋鹿 | Splunk的 |
---|---|
Elk 是一个开源工具 | Splunk 是一个商业工具。 |
Elk stack 不提供 Solaris 由于 Kibana 而具有可移植性。 | Splunk 提供 Solaris 可移植性。 |
处理速度受到严格限制。 | 提供准确、快速的流程。 |
ELK 是一个由 Elastic Search 组合而成的技术栈,Logstash—基巴纳。 | Splunk 是一款专有工具。它提供本地和云解决方案。 |
在 ELK 中,只有设置好 ELK 堆栈后才能进行搜索、分析和可视化。 | Splunk 是一个完整的数据管理包,可供您使用。 |
ELK工具不支持与其他工具集成。 | Splunk 是一个用于与其他工具进行集成的有用工具。 |
客户案例
Netflix公司
Netflix 严重依赖 ELK 堆栈。该公司使用 ELK 堆栈来监控和分析客户服务操作的安全日志。它允许他们索引、存储和搜索来自超过 800 个集群(包含近 XNUMX 个节点)的文档。
著名社交媒体营销网站 LinkedIn 使用 ELK 堆栈来监控性能和安全性。IT 团队将 ELK 与 Kafka 集成以实时支持其负载。他们的 ELK 操作包括六个不同数据中心的 100 多个集群。
绊
Tripwire 是一家全球性的安全信息事件管理系统。该公司使用 ELK 支持信息包日志分析。
中等
Medium 是一个著名的博客发布平台。他们使用 ELK 堆栈来调试生产问题。该公司还使用 ELK 来检测 DynamoDB hotpots。此外,通过使用此堆栈,该公司每周可以支持 25 万独立读者以及数千篇已发布的帖子。
ELK 堆栈的优点和缺点
性能
- 当企业各个应用程序的日志汇聚到单个 ELK 实例时,ELK 的效果最佳
- 它为这个单一实例提供了惊人的洞察力,同时也消除了登录数百个不同日志数据源的需要
- 快速现场安装
- 易于部署 垂直和水平扩展
- Elastic 提供多种语言客户端,其中包括 Ruby。 Python.PHP、Perl、.NET、 Java及 Java脚本等等
- 提供适用于不同编程和脚本语言的库
缺点
- 当你进行复杂的设置时,堆栈中的不同组件可能变得难以处理
- 没有什么比反复试验更好。因此,你做的越多,你学到的就越多
总结
- 在尝试识别服务器或应用程序的问题时,集中日志记录非常有用
- ELK 服务器堆栈有助于解决与集中式日志系统相关的问题
- ELK 堆栈是三个开源工具 Elasticsearch 的集合, Logstash Kibana
- Elasticsearch 是一个 NoSQL 数据库
- Logstash 是数据收集管道工具
- Kibana 是一个数据可视化工具,它完善了 ELK 堆栈
- 在基于云的环境基础设施中,性能和隔离非常重要
- 在 ELK 堆栈中,处理速度受到严格限制,而 Splunk的 提供准确、快速的流程
- Netflix、LinkedIn、Tripware、Medium 都在其业务中使用 ELK 堆栈
- 当企业各个应用程序的日志汇聚到单个 ELK 实例时,ELK Syslog 效果最佳
- 当你进行复杂的设置时,堆栈中的不同组件可能变得难以处理
参考我们的 ElasticSearch 面试问题和答案 适合新手和有经验的应聘者。