注意:

使用 Oracle Cloud Infrastructure Functions 将日志写入 Oracle Cloud Infrastructure Private Stream

简介

日志是现代云运营的基石,可提供有关系统活动、性能和安全性的重要洞察。对于处理敏感数据的企业来说,安全高效地管理日志至关重要。本教程将指导您使用 Oracle Cloud Infrastructure (OCI) 为日志管理构建安全、可扩展且事件驱动的架构。

该解决方案的核心是 OCI Functions,可确保在不暴露于公共端点的情况下安全地传输和处理日志。该架构由通过 OCI Connector Hub 收集并压缩到 OCI Object Storage 中的日志中的事件驱动。每次创建日志文件时,它会触发 OCI Functions,解压缩它,将其分解为可管理的块,并将日志发布到专用流以实现安全存储或进一步处理。

这种事件驱动的方法可确保无缝的自动化管道,使组件对变化做出动态反应,最大限度地减少延迟并最大限度地提高效率。通过利用 OCI 的原生服务,您将获得一个安全、可扩展的框架来实时处理大量日志处理。

目标

先决条件

任务 1:设置必需的策略和 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 权限

此解决方案的每个组件都必须有权访问与之交互的 OCI 资源。要遵循本教程,需要以下权限。

详细的政策可以在这里找到:

任务 2:创建专用流

OCI 流处理是一项完全托管的 OCI 服务,其中对静态数据和传输中的数据进行加密,从而确保消息的完整性和安全性。为了增强安全性,您可以使用 OCI Vault 服务来存储和管理您自己的加密密钥,以满足特定的合规性或安全要求。可以在虚拟云网络 (Virtual Cloud Network,VCN) 中配置专用端点,以进一步保护流,将专用 IP 地址与流池关联。这可确保 OCI Streaming 流量保持在 VCN 内,从而完全避免互联网。但是,请注意,使用专用端点的流无法从 Internet 访问,从而限制了通过控制台查看其最新消息的能力。要使用来自专用流的消息,使用方必须对托管专用流的网络具有路由和访问权。

创建流和流池。输入 Stream Name(流名称),然后选择 Create New Stream Pool(创建新流池)以创建流池。在配置流池部分中,输入流池名称,选择专用端点,然后相应地输入 VCN子网以及网络详细信息。尽管是可选的,但我们建议为该 NSG 内的所有流量提供一个包含入站规则的网络安全组。有关更多信息,请参阅创建流创建流池

NSG 规则的图像

流和流池的映像

您可以使用自己的加密密钥,更好地控制密钥的生命周期。您可以选择调整流中消息的保留。默认值为 1 天,最大值为 7 天。

流加密图像

已完成的流池的图像

记下流 OCID 和消息端点。我们需要将此信息传递给函数。

任务 3:创建和配置 OCI Connector Hub

OCI Connector Hub 充当安全消息总线,有助于在源和目标之间实现无缝、可靠的数据传输。在此架构中,源为 OCI 日志记录,目标为 OCI 对象存储,在这些存储中对这些日志进行压缩并进行进一步处理。OCI Connector Hub 充当中介,可确保高效的数据流,同时维护传输消息的安全性和完整性。

本教程假定在子网上启用了流日志,并且 OCI 对象存储存储桶可用。有关启用流日志和创建存储桶的更多信息,请参见启用流日志创建对象存储存储桶

创建存储桶时,请确保选择发出对象事件。这是我们事件驱动架构的关键。

存储桶的图像

配置 OCI Connector 中心,在 OCI 日志记录服务和 OCI 对象存储存储桶之间创建数据流。有关更多信息,请参见 Creating a Connector with a Logging Source

SCH 的图像

通过调整批结转详细信息,您可以配置日志写入 OCI 对象存储存储桶的频率。默认值为 100 MB 或 7 分钟。

任务 4:开发和部署函数

此函数将读取 OCI 对象存储中的对象并将消息写入流。为此,它将在以下两者之间执行操作:

  1. 从存储桶读取对象。
  2. 解压缩对象。
  3. 检查对象大小并根据需要创建 1 MB 的块。OCI 流处理服务限制生成器可以发布到流的唯一消息的最大大小为 1 MB。
  4. 对消息进行编码。
  5. 发布到流。

有关详细信息,请参阅创建函数

函数的图像

最后一步是告诉函数专用流的位置。此函数使用配置参数,如果要在其他租户中部署,则使其可重用。

函数配置的图像

任务 5:创建事件并订阅函数

在此任务中,将函数订阅到对象上载事件。将事件类型创建规则作为对象 - 创建,将存储桶名称作为条件属性。有关更多信息,请参阅创建事件规则

事件配置的图像

验证

数据流可以在多个位置进行验证。

  1. 验证日志组度量以检查是否摄取了流日志。

    日志记录度量图像

  2. 下一个跃点是连接器集线器度量。OCI Connector Hub 会收集日志并将其发送到 OCI 对象存储。确保源和目标上没有错误。

    图像显示 SCH 度量

  3. 下一个跃点是 OCI Object Storage。确保对象计数递增。如果需要,请启用读写日志以进一步调试。

    图中显示 OSS 度量

  4. 下一个跃点是 OCI 事件服务。复核度量以确保没有传送失败。

    事件度量图像

  5. 下一步是检查函数 Invocation 度量。确保没有错误,并且函数没有限制。

    Fn 度量的图像

  6. 检查数据是否正在摄取到专用流中。

    专用流度量的图像

如果以下任一图表中缺少数据,请在此处停止并为该服务启用日志。日志将解释特定资源执行任务失败的原因。

后续步骤

祝贺您在 OCI 中成功实施安全且事件驱动的日志管理解决方案!通过结合 OCI Logging、OCI Connector Hub、OCI Object Storage 和 OCI 专用流的强大功能,您创建了一个强大的架构,可确保以近乎实时的方式安全地收集、处理和发布日志。

此解决方案通过专用流保护敏感日志数据,并展示事件驱动自动化的效率。随着系统扩展,此架构将无缝适应,使您能够以最少的手动干预来处理大量日志。

借助该框架,您可以确保安全、高效的日志处理,同时符合隐私要求。通过此架构,您可以灵活地构建符合企业需求的定制处理管道。通过其他分析或预警机制扩展此设置可以更深入地了解系统事件,并增强主动检测和响应异常的能力。

有关使用 OCI Functions 和 OCI 专用流功能的详细信息,请与您的 Oracle 代表联系,或者参见云安全解决方案

确认

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心