从数据中获取洞察:Elastic Stack 概述

目前还没有读者喜欢这篇文章。
Rocks stacked

Tony Smith via Flickr (CC BY 2.0)

Elastic Stack 是一套功能丰富的开源软件工具,可以更轻松地从数据中获取洞察。以前称为 ELK Stack (指的是 ElasticsearchLogstashKibana),但与该平台集成的工具(例如 Beats)的数量不断增长,已经超出了该首字母缩略词的范围,但为用户和开发人员提供了不断增长的功能。

在即将举行的 Southeast Linuxfest 2016 上,我将介绍开始使用 Stack 各个部分的步骤。 在本文中,我们将依次查看每个部分,以总结其功能、要求和适用的有趣用例。

Beats & Logstash

收集数据是所有事情的起点。Logstash 和 Beats 都满足了这种需求,但它们都经过精心调整,以满足不同的需求和用途。 无论您的首要任务是轻量级的资源使用还是丰富的功能,这两种解决方案都旨在满足这些要求。

Beats

Beats 是轻量级、快速的数据传送器和收集器,通常只做一件事并且做得很好。 例如,Packetbeat 收集和传送有关网络接口上的数据包活动的数据,而 Filebeat 可以跟踪日志文件并将日志发送到下游进行处理。 Beats 旨在快速、可移植且易于在单个主机上部署,以满足特定需求。 甚至还有社区创建的 Beats,用于 监控 HTTP 端点NGINX 健康状况 等用途。

Beats 以 Go 编写并基于 libbeat 的共享基础,旨在易于实现,以便即使是资源受限的环境也可以轻松地进行测量,而无需大量开销。

Logstash

Logstash 同样能够收集机器数据,但它的亮点在于有大量的开源插件可用于丰富数据。 例如,虽然收集 Web 服务器日志很有用,但深入解析用户代理数据以提取流量统计信息可能是有益的,而 useragent 过滤器可以做到这一点。 或者,如果使用 Twitter 插件,您可能希望对用户推文执行 情感分析

自定义插件是简单的 Ruby 库,使用户能够扩展功能并快速构建新功能的原型。 但是,性能并非事后才考虑的事情:Logstash 默认附带 JRuby,这为并发和实际线程打开了可能性。

Elasticsearch

收集和丰富数据后,将其存储在 Elasticsearch 中会带来一系列可能性。

Elasticsearch 本质上是一个搜索引擎,由于其灵活性和易用性而产生了无数的用例。 Elasticsearch 基于 Apache Lucene,力求让最终用户更容易应对运营挑战(如可扩展性和可靠性)和基于应用程序的需求(如自由文本搜索和自动完成)。

在运营方面,Elasticsearch 的弹性源于将索引拆分为分片,这些分片可以分布在多个主机上,以平衡负载并提高性能。 经过规划,这意味着数据集可以增长到远远超出单台机器的处理能力。

可以在 Elasticsearch 上执行的一些分析示例包括

  • 地理搜索。 当文档插入地理元数据时,结果可以叠加在地图上,以可视化文档如何与真实世界的经度和纬度相关。
  • 图表。 最近的插件已将图形搜索添加到 Elasticsearch,它可以回答有趣的问题,例如 巴拿马文件 中数据之间的关系。
  • 聚合。 回答哪些页面返回的 500 错误最多等问题,就变成了为日志文件中的字段形成正确查询的问题。

虽然所有这些功能都由 Elasticsearch 的核心驱动,但在用户友好的界面中公开它们留给了 Stack 中的下一层。

Kibana

Kibana 是一个基于浏览器的 Elasticsearch 可视化前端。 它使用户能够轻松地使用原本难以处理的聚合数据; 使日志、指标和非结构化数据可搜索且对人类更可用。 其他插件可用于特殊情况,例如用于时序数据的 Timelion

由于 Kibana 将其大部分数据持久保存在 Elasticsearch 中,因此管理 Kibana 仪表板和可视化与管理 Elasticsearch 中的其他索引类似。 图表、图形和其他可视化位于 Elasticsearch API 之上,可以轻松检查以进行更详细的分析或在其他系统中使用。

一个开放的生态系统

与其他多方面系统一样,Elastic Stack 受到工具的支持,这些工具可帮助管理部署和配置,例如 AnsiblePuppetChef。 同样也提供了标准发行版 存储库

值得注意的是,所有这些开源项目都分布在各种语言中。 虽然 Beats 以 Go 编写,用于可移植、高效地分发编译后的二进制文件,但 Kibana 使用 Javascript 用于统一开发前端和后端组件。 凭借多种语言和一个开放的 代码库,用户应该可以自由参与对他们重要的功能开发和错误修复工作。

现在是使用 Stack 并了解你可以用它做些什么的好时机,各种解决方案和全球社区随时准备为用户和开发人员提供支持。

User profile image.
Tyler 是 Elastic 的基础设施工程师,身兼数职。 在之前的生活中,他曾在网络安全、数据中心楼层以及各种运营岗位工作过。 他是开源社区的积极贡献者,喜欢在 Linux、函数式编程语言和 zsh 中工作。

评论已关闭。

Creative Commons License本作品采用 Creative Commons Attribution-Share Alike 4.0 International License 授权。
© 2025 open-source.net.cn. All rights reserved.