部署 Elasticsearch 和 Kibana

弹性搜索是一个开放源代码、企业级搜索引擎。Elasticsearch 可通过广泛的 API 进行访问,从而为支持数据搜索应用程序的快速搜索提供支持。它可以扩展数千台服务器并容纳千兆字节的数据。其庞大的能力直接来自其精心设计的分布式架构。

Elasticsearch 最常见的用例是使用从结构化和非结构化数据源提取的超快数据进行分析,以及使用广泛查询语言和自动完成的全文搜索。

体系结构

此引用体系结构显示 Elasticsearch 和 Kibana 的集群部署。

后面是 elk-oci.png 的说明
插图 elk-oci.png 的说明

elk-oci.zip

此体系结构包含以下组件:

  • 可用性域

    可用性域是区域内的独立独立数据中心。每个可用性域中的物理资源都与其他可用性域中的资源隔离,这些资源提供故障容差。可用性域不共享基础设施,例如电源、冷却或内部可用性域网络。因此,一个可用性域的故障不可能影响该区域中的其他可用性域。

  • 故障域

    故障域是可用性域中的一组硬件和基础结构。每个可用性域都有三个具有独立电源和硬件的故障域。在多个故障域之间分配资源时,应用程序可以容忍故障域中的物理服务器故障、系统维护和电源故障。

  • 底座主机

    堡垒主机是一个计算实例,用作云外部拓扑的安全受控入口点。堡垒主机通常预配在非军事区 (DMZ) 中。它使您可以通过将敏感资源放置在无法直接从云外部访问的专用网络中来保护敏感资源。拓扑有一个已知的单个入口点,您可以定期监视和审计。因此,可以避免公开拓扑的更敏感的组件,而不会影响对这些组件的访问。

  • 负载平衡器

    负载平衡器平衡数据节点的索引操作和对主节点的 Kibana 访问权限。它使用两个监听程序,一个用于 Kibana,另一个用于索引数据访问,使用主节点后端和数据节点后端。负载平衡器位于具有公共 IP 地址的公共子网中。

  • 主节点

    主节点执行集群管理任务,例如创建索引和重新平衡分片。他们不存储数据。三个主节点(建议用于较大的集群)部署在三个故障域之间,以确保高可用性。

  • 数据节点

    三个数据节点部署在三个故障域之间,以实现高可用性。我们建议使用内存优化的计算实例,因为 Elasticsearch 取决于可用内存量。每个数据节点都配置有 200 个 GiB 块存储。除了 VM 之外,Oracle Cloud Infrastructure 还提供强大的裸金属实例,这些实例在群集中连接到无订阅 25 Gb 网络基础结构。此配置可确保低延迟和高吞吐量,从而提供高性能分布式流负载。

  • Kibana

    与主节点一样,Kibana 具有相对较轻的资源需求。大多数计算都推送到 Elasticsearch。在此部署中,Kibana 在主节点上运行。

建议

您的要求可能与此处描述的体系结构不同。使用以下建议案作为起点。

  • VCN

    创建 VCN 时,根据计划附加到 VCN 中子网的资源数确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。

    创建 VCN 后,可以更改、添加和删除其 CIDR 块。

    设计子网时,请考虑流量和安全要求。将特定层或角色中的所有资源附加到可用作安全边界的同一子网。

    使用区域子网。

  • 网络安全组 (Network Security Group, NSG)

    可以使用 NSG 定义一组适用于特定 VNIC 的入站和出站规则。我们建议使用 NSG 而不是安全列表,因为 NSG 允许您将 VCN 的子网体系结构与应用程序的安全要求分开。在引用体系结构中,所有网络通信都通过 NSG 进行控制。

  • 块存储

    此体系结构使用 200 GB 的块存储。建议您配置逻辑卷管理器 (logical volume Manager, LVM),以便在需要更多空间时允许卷增长。每个块卷配置为使用平衡性能,并提供 35K IOPS 和 480 MBps 吞吐量。

  • 计算形状

    此体系结构对所有数据节点使用虚拟机配置 (VM.Standard2.24)。这些计算实例可以将流量推送到 25 Gbps,并提供 320 GB RAM。

考虑事项

  • 性能

    Elasticsearch 取决于可用内存量。要获得最佳性能,请使用为您提供大量内存的计算形状。您可以使用裸金属形状,在其中最多可以获得 768 GB 的 RAM。

  • 可用性

    故障域提供可用性域中的最佳弹性。如果需要更高的可用性,请考虑将多个可用性域或多个区域用于部署。

  • 可扩展性

    虽然您可以手动扩展主节点和数据节点,但我们建议您使用自动扩展来最大限度地减少服务在高负载下因资源而陷入饥饿的机会。自动缩放策略必须同时考虑主节点和数据节点。

  • 成本

    弹性搜索部署的成本取决于您对内存和可用性的要求。您选择的计算形状会对与此体系结构关联的成本产生更高的影响。

部署

部署此引用体系结构所需的代码在 GitHub 中可用。单击一次即可将代码拉入 Oracle Cloud Infrastructure Resource Manager,创建堆栈并部署该堆栈。或者,也可以使用 Terraform CLI 将代码从 GitHub 下载到计算机,定制代码并部署体系结构。

  • 使用 Oracle Cloud Infrastructure Resource Manager 进行部署:
    1. 单击部署到 Oracle Cloud

      如果您尚未登录,请输入租户和用户身份证明。

    2. 复查并接受条款和条件。
    3. 选择要在其中部署堆栈的区域。
    4. 按照屏幕上的提示和说明创建堆栈。
    5. 创建堆栈后,单击 Terraform 操作,然后选择规划
    6. 等待作业完成,然后复查计划。

      要进行任何更改,请返回“堆栈详细信息”页,单击编辑堆栈,然后进行所需的更改。然后,再次运行计划操作。

    7. 如果不需要进一步更改,请返回堆栈详细信息页,单击 Terraform 操作,然后选择应用
  • 使用 Terraform CLI 部署:
    1. 转到 GitHub
    2. 将代码下载或克隆到本地计算机。
    3. 按照 cluster/single-ad/README.md 中的说明操作。

更改日志

此日志仅列出重大更改: