在 Oracle Cloud Infrastructure 中存储和分析内部部署日志

Oracle Cloud Infrastructure Data Flow 是一个完全托管的 Apache Spark™服务,非常适合处理大量日志文件。

始终生成日志文件。硬件、操作系统、网络设备、Web 服务和应用程序的所有内容都会持续生成日志。分析此日志数据有助于排除和诊断故障、预测性修复、入侵检测、Web 访问模式等。

数据流允许在 Oracle Cloud Infrastructure Object Storage 中集中存储日志数据。通过创建一次 Apache Spark 应用程序,然后在新日志文件到达对象存储时在新日志文件上运行该应用程序,可以对数据进行分析。然后,可以将此分析的输出加载到 Autonomous Data Warehouse 以进行查询和报告。所有这些都是在没有开销的情况下完成的,例如预配集群或软件安装。

体系结构

此体系结构显示连接到对象存储、分析日志文件以及在 Autonomous Data Warehouse 中保存结果以进行报告的数据流

下图说明了此引用体系结构。

后面是体系结构的说明 -analyze-logs.png
插图 architecture-analyze-logs.png 的说明

体系结构包含以下组件:

  • 区域

    Oracle Cloud Infrastructure 区域是一个本地化地理区域,包含一个或多个数据中心,称为可用性域。区域独立于其他区域,其距离很大(跨越国家或甚至大陆)可以分开。

  • 可用性域

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

  • 故障域

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

  • 虚拟云网络 (VCN) 和子网

    VCN 是在 Oracle Cloud Infrastructure 区域中设置的可自定义、软件定义的网络。与传统的数据中心网络一样,VCN 为您提供了对网络环境的完全控制。VCN 可以有多个非重叠 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 细分为子网,子网可以被限定为区域或可用性域。每个子网包含一系列与 VCN 中的其他子网不重叠的地址。您可以在创建后更改子网的大小。子网可以是公共的或专用的。

  • 对象存储

    通过对象存储,可以快速访问任何内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及丰富的内容,例如图像和视频。使用标准存储进行“热”存储,您需要快速、立即和频繁地访问这些存储。将归档存储用于长期保留且很少或很少访问的“冷”存储。

  • Autonomous Data Warehouse

    Oracle Autonomous Data Warehouse 是一种自主驱动、自我安全、自我修复的数据库服务,针对数据仓库工作负载进行了优化。您无需配置或管理任何硬件,也不需要安装任何软件。Oracle Cloud Infrastructure 处理创建数据库以及备份、打补丁、升级和优化数据库。

  • 数据流

    Oracle Cloud Infrastructure Data Flow 是用于运行 Apache Spark™应用程序的完全托管服务。它允许开发人员专注于其应用程序,并提供一个简单的运行时环境来执行这些应用程序。它有一个简单易用的用户界面,API 支持与应用程序和工作流集成。您无需在基础基础结构、群集预配或软件安装上花费任何时间。

建议

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

  • VCN

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

    选择不与您要设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure、内部部署数据中心或其他云提供商中)重叠的 CIDR 块。

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

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

  • 对象存储

    将所有日志文件提取到 Oracle Cloud Infrastructure Object Storage 中。根据业务要求确定相应的批量,然后运行数据流应用程序来处理文件。

  • 数据流

    不需要特殊配置。但是,根据在应用程序的每次运行中处理的日志数据量,建议为 Spark 驱动程序和执行器配置更大的 VM。

  • Oracle Autonomous Data Warehouse

    确保访问数据仓库所需的 Wallet 存储在安全位置,并且只能由授权用户访问。部署 Autonomous Data Warehouse 的一个考虑因素是在 VCN 中创建作为专用端点。

  • 安全性

    使用 Oracle Cloud Infrastructure Identity and Access Management 解决方案应用策略并提供对用户、组和资源的访问权限。Spark 应用程序需要访问存储桶才能读取日志文件。使用 Vault 服务存储访问 Autonomous Data Warehouse 所需的口令。

考虑事项

  • 频率

    执行应用程序的频率取决于传入日志文件的量和频率。Spark 应用程序应使用适当的逻辑编写,以便可以处理此传入的数据批。一般准则是处理每个批处理所用的时间应与 Autonomous Data Warehouse 中消耗已处理输出的下游服务所需的刷新频率保持一致。

  • 性能

    影响性能的几个因素,但最重要的是传入日志文件的数据分发和分区。Spark 应用程序可以根据需要与 OCPU 和内存资源并行针对每个分区运行。Oracle Cloud Infrastructure Data Flow 提供了管理每次执行应用程序所需的资源的完全弹性。

  • 安全性

    使用策略可以限制谁可以访问 Oracle Cloud Infrastructure 资源以及在多大程度上访问 Oracle Cloud Infrastructure 资源。使用 Oracle Cloud Infrastructure Identity and Access Management (IAM) 可以为数据流数据流中的运行管理的特定用户和用户组分配权限。

    默认情况下,已为 Oracle Cloud Infrastructure Object Storage 启用加密,无法关闭。

  • 成本

    Oracle Cloud Infrastructure Data Flow 是每次使用时支付的,因此仅在运行数据流应用程序时支付,而不是在创建数据流应用程序时支付。建议使用不同的可用层存储日志:对象存储(“热”存储)和归档存储(“冷”存储)。然后,处理的数据可以存储在 Autonomous Data Warehouse 中。

部署

GitHub 上提供了此引用体系结构的 Terraform 代码。

  1. 转到 GitHub
  2. 将资料档案库克隆或下载到本地计算机。
  3. 按照 README 文档中的说明操作。

更改日志

此日志仅列出重大更改:

2021 年 6 月 2 日 添加了指向教程的链接并添加了“部署”部分。