你们中的许多人已经知道 ELK 堆栈的优势,以及为什么这么多团队正在使用它。它不仅对诊断和解决错误以及生产问题至关重要,而且对客户洞察也越来越有价值。此外,获得有关系统运行状况和使用情况的其他指标将为您的团队带来强大的竞争优势。当其他公司努力找出不足之处时,您的团队可以检查数据、调整并提供系统所需的信息。

作为一名经理,您经常会想到为您的工程师和 DevOps 团队提供一个好的日志记录解决方案。但您也知道提供这个解决方案需要支付一定的成本。除了基础设施的成本外,还需要处理升级、补丁和部署。这些都需要投入时间、精力,并且需要具备专业知识。

那么,您如何提供一个优雅,并且易于维护和支持的日志记录解决方案呢? 有没有一种方法可以让我们在不头疼的情况下获得 ELK 堆栈的所有优势?

为什么日志记录如此重要?

随着机器数据日益增多,日志记录变得越来越重要。它对于诊断和排查问题以获得最佳应用程序性能至关重要。此外,还有许多工具可以让您从日志中获取关键业务指标和数据。日志记录不再只是为了发现问题。它还用于监控您的系统。

毫无疑问;日志记录至关重要。那么,让我们谈谈如何实现它。当前一种流行的方法是 ELK 堆栈。您可以选择使用 Apache 2.0 许可版本的 Elasticsearch 和 Kibana(直到版本 7.10.2)自行部署和管理 ELK 堆栈,或者使用 OpenSearch、OpenSearch 控制面板和 Logstash 自行管理 ELK 堆栈的开源替代方案

我为什么需要 ELK 堆栈?

快速提示一下,ELK 是由 ElasticsearchLogstashKibana 的核心组成的堆栈。我们来同样快速地总结一下每种元素。

Elasticsearch:一种用于全文搜索以及分析日志和指标的搜索和分析引擎。
Logstash:一种获取和转换日志和事件的开源工具。
Kibana:一种审查日志和事件的可视化和挖掘工具。

当一起使用时,ELK 堆栈的组件使您能够汇总来自所有系统的日志。不仅能够分析它们的问题,还能监控系统的使用情况并找到改进的机会。ELK 提供的数据分析和可视化是无与伦比的。

但是为什么要为 ELK 使用托管服务呢? 您有一个很好的团队。您不想被束缚到某个托管服务提供商。并且您希望能够灵活地为您的特定使用案例配置所有内容。为什么不自己管理 ELK 呢?

长话短说:这很难。

为什么管理自己的 ELK 堆栈如此困难?

我们来看一下为什么您可能无法自行管理 ELK 的一些原因。

安装相对简单
在研究集成系统时,请不要忘记安装并不总是琐碎的。最佳配置是什么? 在哪里管理您的密钥? 需要多少硬件?

快速搜索一下互联网可以提供很多关于如何安装 ELK 的文章。如果您仔细看一下,可能会注意到一件事,那就是当您开始后,会发现远不是一次单击即可完成部署。事实上,有很多先决条件。您要么使用基本安装,这种安装对所有内容都采用开箱即用的配置,要么花更多时间研究所有配置选项。您的数据摄取限制是什么? 您的保留计划是什么? 为什么这很重要?

现在想象一下,对于您拥有的每个环境都要执行几次这样的操作。

即使您对所有内容都使用自动脚本,也需要花费大量宝贵的时间来设置所有内容并使其顺利运行。这段时间不会用在为客户提供价值上。有了像 Amazon OpenSearch Service 这样的托管式服务,部署 ELK 堆栈既简单又可重复。

但很少较快
大多数公司都努力将其产品快速推向市场。但是,如果您被迫花费数周甚至数月的时间将堆栈和基础设施准备到生产就绪状态,您将无法做到这一点。

您当前将应用程序投入生产环境的流程是什么? 为了确保准备就绪,您会进行哪些测试、验证和修改? 如果您的硬件需要针对写密集型操作进行优化设置,那么在进入生产环境之前,您是否已经完成了这些设置? 您的升级计划是什么?

如果您正在管理自己的 ELK 堆栈,那么这一切都是通过您不熟悉的基础设施和应用程序完成的。Amazon OpenSearch Service 等服务可以帮助您显著降低基础设施、实施和日常维护成本。

更多的时间花在弹性上
管理您的 ELK 堆栈时,您很快就会发现自己担心弹性问题。当一个 Elasticsearch 节点发生故障时,您应该怎么做? 或者,您的 Kibana 性能变得无法使用时,您应该怎么做?

此外,如果在上述步骤中正确设置了基础设施,您也可能会遇到麻烦。Logstash 和 Elasticsearch 是内存密集型产品。如果您尝试通过将它们安装在同一个微小的硬件上来节省时间和资金,它们会相互叠加。我们甚至还没有讨论过更新版本或监控和修补安全问题的计划!

AWS 可以帮助满足这些需求。例如,让我们考虑一下您的 Elasticsearch 节点。如果某个节点出现故障,Amazon OpenSearch Service 会检测并为您替换它。这是另一件您不想花时间担心的事情。

基本上,拥有一支强大的团队是件好事,因为自行管理会让团队变得更强大。如果运行 Elasticsearch 集群对您的业务并不重要,那么让 AWS 为您管理它。聘请工程师来创造商业价值,而不是管理 ELK 堆栈,这始终是一个好主意。

那么,哪些工具有助于防止 ELK 堆栈让您感到头痛?
如果您构建、运行和支持 ELK,重要的是要记住,您不是只支持一种工具。您现在不得不担心三个工具。而在生产环境中运行也会带来其他问题。在寻求自我管理的过程中,您最后还可能支持什么?

例如,为了增加弹性,您可能希望使用 Kafka 对日志进行排队。在流量高峰时段,您不想因为您的 ELK 堆栈跟不上而丢失日志。您准备好也使用 Kafka 管理吗? 或者,您也可以使用 Redis 来帮助管理高峰时段的负载。但是请等一下,这不是您需要管理的其他事情吗? 您将如何提取所需的分析,以便您的团队能够监控系统? 您在这里也要手动完成一些工作吗? 或者,您是否会安装并配置另一个系统以提供所需的监控?

还有一种选择。您可以使用像 Amazon Cloudwatch 的工具来提供帮助。将这个工具与 Kibana 结合使用,创建一种易于使用的日志分析方法。

最后但也同样重要的是,Amazon OpenSearch Service 等托管 Elasticsearch 服务也可以帮助实现安全集成,包括 VPC 支持、静态和动态数据的内置加密,以及用户身份验证。

托管解决方案是否适合您?

许多公司认为自行托管是一种选择。但并不是所有的人都考虑到保持顺畅运行所需的工作量和技术资源以及专业知识。没有人愿意将本可以用来为客户提供卓越产品的时间花在让系统保持运行上。

即使您一直在考虑自行托管,也应该考虑从像 Amazon OpenSearch Service 这样的托管服务开始,以便迅速地启动并运行。很可能您在尝试了它之后便会发现,像 Amazon OpenSearch Service 这样的托管服务可以让您将时间花在重要的事情上。

OpenSearch 包括某些来自 Elasticsearch B.V. 和其他源代码且经 Apache 许可的 Elasticsearch 代码。Elasticsearch B.V. 不是该其他源代码的来源。ELASTICSEARCH 是 Elasticsearch B.V. 的注册商标。

了解有关 Amazon OpenSearch Service 定价的更多信息

访问定价页面
准备好开始构建了吗?
开始使用 Amazon OpenSearch Service
还有更多问题?
联系我们