在 Elastic 7.8 版本的发布中,我们很高兴地宣布一项重大改进,该改进将使将数据发送到 Elastic Stack 变得更加容易。 首先,我们将启动我们的 Elastic Agent 的实验版本,这是一个统一的代理,可简化安装和管理。
其次,我们将启动 Ingest Manager,这是 Kibana 中的新应用程序,可让你单击几下快速添加流行服务和平台的集成。 它还将帮助你集中管理整个 Elastic Agent 团队。
此实验版本将展示我们对未来的愿景,并允许你尝试我们的新解决方案。 没有将来版本的迁移路径,因此你必须在专用群集中进行测试。
大规模摄取数据的挑战
选择监视解决方案时的一个关键因素是你可以多么轻松地从应用程序和平台中提取数据。花时间设置和管理解决方案会增加你的总拥有成本。
Beats 是用于将数据传输到 Elastic Stack 的当前解决方案,与 syslog 等通用解决方案相比,它们使许多事情变得更容易。但是,当用户第一次上手时,他们必须在命令行上安装模块,编辑较长的 YAML 文件,复制密码或配置和使用密钥库。我们希望使入门像运行一个命令一样简单。如果你对之前的 Beats 如何进行安装和运行,请参阅我之前的文章 “Beats:Beats 入门教程 (一)(二)”。更多关于 Beats 的文章,请参阅链接 Beats。
随着用户对 Elastic Stack 的采用程度的提高,他们发现除了 APM 代理,APM 服务器,端点安全性等之外,我们目前总共有七个Beats。安装这么多的二进制文件非常复杂,尤其是在企业环境中,每个二进制文件都涉及通过配置管理解决方案,渐进式部署,变更管理和审核要求进行安装。
另一个挑战是为新数据源添加集成的过程。今天,用户必须编辑 YAML 文件并将其上传到所有服务器。他们经常使用 Ansible 或Chef 等工具来推出配置。不幸的是,这使添加新数据源成为一个复杂的过程,通常需要第三方工具并在团队之间进行协调。当处理分布在多个网络和数据中心的成千上万的代理时,这甚至更加复杂。
引入 Elastic Agent 和 Ingest Manager
Elastic Agent 是一种向所有主机添加对日志,指标和其他类型数据的监视的统一方法。你不再需要安装多个 Beats 和其他代理。这将使跨基础架构的部署变得更容易,更快捷。此外,Elastic Agent 具有单个统一的配置。因此,无需为 Filebeat,Metricbeat 等编辑多个配置文件。这将使添加新数据源的集成变得更加容易。
Ingest Manager 提供了一个基于 Web 的 Kibana UI,以添加和管理流行服务和平台的集成。该版本支持九种集成,并且我们计划在接下来的几个版本中增加对100多个 Beats 模块的支持。我们的集成不仅提供了添加新数据源的简便方法,而且还提供了现成的资产,如仪表板,可视化效果和管道,可从日志中提取结构化字段。你无需花费很多精力来配置系统,因为系统会自动为你完成常见服务。这使得在几秒钟内获得洞察变得更加容易。
简化配置
借助我们的配置编辑器用户界面,现在可以更轻松地配置集成。现在,我们不再提供带有许多不相关设置的冗长的 YAML 文件,而是提供了一个便捷的基于 Web 的界面,该界面更加简洁并提供了指导和验证。
在下面的屏幕截图中,邀请用户选择已经选择默认设置的代理配置。代理配置可以应用于多个代理。这使大规模管理配置变得更加容易。
接下来,用户通过提供名称和描述来定义其数据源。然后,他们可以配置访问和错误日??志的路径。用户完成操作后,他们可以保存数据源。这会将 NGINX 监视添加到所有注册为默认代理配置的代理中。这些代理下次登录时,将收到更新。与必须使用 SSH,Ansible Playbook 等自己进行配置相比,自动部署这些配置要方便得多。
高级用户有时会喜欢 YAML 文件和 API。 Ingest Manager 具有 API 优先设计,您在界面中可以执行的任何操作,也可以使用 API?? 进行的操作。这使得自动化和与其他系统集成变得容易。
集中管理您的 Fleet
Fleet用通俗的话来说,就是舰队。你可以在 Fleet 页面上查看所有弹性代理的状态。 在这里,你可以查看哪些代理在线,哪些错误以及上次签入的时间。你还可以查看代理二进制文件和配置的版本。
Fleet 充当回 Elastic Agents 的沟通渠道。 代理会定期检查最新更新。 每个代理配置中可以注册任意数量的代理,这使你最多可以扩展到数千个主机。 当你更改代理配置时,所有代理在下一次签入时都会收到更新。你不再需要自己使用 SSH,Ansible Playbooks 或其他配置方法来分发配置更新。
数据流使索引管理更加容易
Elastic Agents 收集的数据存储在索引中,该索引的粒度比默认情况下通过 Filebeat 获得的粒度要大。优点是,它使用户可以更好地了解数据量的来源,并控制生命周期管理策略和索引权限。我们将这些新索引称为“data streams (数据流)” ,并且在将来的版本中将对此概念进行更多改进。
在下面的屏幕快照中,你可以看到我们按数据集,类型和名称空间划分了数据流(或索引)。数据集由集成定义,并描述每个索引的字段和其他设置。例如,你可能有一个流程指标数据集,其中一个字段描述了流程是否正在运行。磁盘 I/O 指标的另一个数据集将具有一个字段,该字段描述读取的字节数。这解决了具有数百或数千个字段的索引的问题,因为我们只需要在每个索引中存储少量字段即可。这使它们更加紧凑,并具有更快的自动完成功能,此外,“Discover” 页面将仅显示相关字段。
命名空间(Namespaces)是用户定义的字符串,可让您按自己喜欢的方式对数据进行分组。 例如,你可以按环境(产品,质量检查)或团队名称对数据进行分组。 这使得使用索引模式从给定源中搜索数据变得更容易,或者通过为用户角色分配索引模式来使用户具有对数据的权限。 我们的许多客户已经以这种方式组织索引,现在,我们提供了默认情况下的最佳实践。
Beats 和 Beats 集中管理的未来
Beats 并不会消失,用户可以继续将它们与 Elastic Agent 一起使用。 实际上,Elastic Agent 在后台运行 Beats。 Elastic Agent 是顶部的轻量级界面,可简化部署和集中管理。
Beats Central Management 是我们几年前发布的 Beta 版产品,用于 Central Management。 随着我们更多地了解客户的用例,我们决定将系统重新设计为新的 Ingest Manager。 Beats Central Management 已弃用,并且仍然有效,但是我们不正式支持它。
Ingest Manager 将取代 Beats Central Management,并使大规模管理许多 Agent 变得更加容易。 这是一个实验性发行版,因此我们建议你等到 Ingest Manager 普遍可用(GA)后再在生产中使用它。
此版本的局限性
你必须在专用群集中进行测试。在将来的版本中,我们计划增加对管理滚动索引的新方法的支持,这将使用户的体验更轻松。但是,此版本中存储的所有数据都不会在我们的下一个版本中迁移,你必须擦除在 Kibana 和 Elasticsearch 中更改的所有数据和设置,以避免将来发生冲突。我们建议你使用专用的测试群集或部署,完成后可以将其删除。
目前,只有具有超级用户角色的用户才能使用 Ingest Manager。此角色对于创建索引,安装集成资产和更新代理配置是必需的。为了使用 Fleet,Elastic Agent 必须直接连接到 Kibana。在不可用或不需要网络连接的情况下,也可以独立模式运行 Elastic Agents。
此外,此版本仅包括对九种集成的支持,将来的版本中还将提供更多支持:
- System logs and metrics
- Custom logs
- AWS
- Nginx
- Redis
- Mysql
- Kafka
- Cisco devices
- Netflow logs
你可以在我们的文档中阅读有关此版本限制的更多信息。实验版本不受官方支持,但我们建议你在我们的论坛中报告问题。
试试看
你可以自己尝试新的 Elastic Agent 和 Ingest Manager。 你可以从我们的下载页面下载 Elastic Agent。 最简单的入门方法是创建一个新的云部署以进行测试。 由于这是实验版本,因此只能在专用的测试环境中使用,完成后可以将其删除。
接下来,你必须通过打开一个标记来启用 Ingest Manger。 此步骤仅对于当前版本是临时的,默认情况下,在将来的版本中将启用Ingest Manager。 在 “create deployment” 页面上,输入以下标志作为用户设置替代,以启用 Ingest Manager。
xpack.ingestManager.enabled:true
可能很难找到在什么地方进行配置,因此请参见下面的屏幕截图。 在 Kibana 配置框的底部。
本地群集需要执行一些额外的步骤(例如启用安全性),因此请参阅有关在这种情况下如何启用 Ingest Manager 的文档。
首次打开此应用程序时,它将要求你启用 Fleet 进行中央管理。 在 “Overview” 页面上,单击 “Enroll a new agent” 按钮。 弹出窗口打开后,请按照说明注册并运行 Elastic Agent。 在我们的 Ingest Manager 文档中了解更多信息。
我们正在免费开放当前版本的 Elastic Agent 和 Ingest Manager。 我们希望鼓励与社区的合作,以便你可以在 GitHub上 找到 Elastic Agent 和 Ingest Manager 的代码。
更多阅读
这是我们关于 Ingest Manager 文章的第一篇文章。我们将在接下来的第二篇文章中详述如何在本地的部署中启动 Ingest Management。敬请期待!