使用容器实例创建 PostgreSQL 定制 OCI 监视预警和仪表盘

简介

此教程提供了在 Oracle Cloud Infrastructure (OCI) 上使用基于 Docker 的 Java 应用为 PostgreSQL 部署定制监视解决方案的分步说明。我们将演示如何使用基于虚拟机 (VM) 的容器为 OCI 中的非活动复制插槽和复制滞后创建定制预警和仪表盘。虽然当前设置侧重于监视 PostgreSQL 复制滞后和不活动复制插槽,但该设计非常灵活,可以通过修改应用程序代码轻松扩展以跟踪其他数据库度量。

目标

任务 1:下载和设置监视服务

  1. 从此处下载 Postgres-monitoring-services.zip 文件: Postgres-monitoring-services.zip

  2. 解压缩并按照 README.md 文件的说明来构建和运行应用程序。

  3. Docker 构建和部署指令包含在存储库中。

    注:项目存储库的 README.md 中已经提供了有关构建和推送 Docker 映像的说明。

任务 2:创建动态组

动态组允许容器 VM 访问 OCI 监视、OCI Vault 和 OCI 注册表等 OCI 服务,而无需使用硬编码凭据,也无需在映像中存储凭据。

使用以下信息:

注:compartment.id 是将在其中创建容器实例的区间 OCID。

任务 3:配置网络(VCN 和服务网关)

要确保无缝通信,请将容器 VM 放在与 PostgreSQL 数据库系统相同的专用子网中。允许使用服务网关访问 OCI 服务。

Security List Rules(安全列表规则):

确保以下规则已添加到专用子网的安全列表中(如果尚不存在)。

类型 源 CIDR 协议 端口 用途
入站 私有子网 CIDR TCP 5432 PostgreSQL 访问
出站 0.0.0.0/0 全部 全部 访问 OCI 服务

任务 4:使用 OCI Vault 进行安全密码存储

使用 OCI Vault 进行安全密码存储,以避免对数据库身份证明进行硬编码。

  1. 创建 Vault 并添加包含 PostgreSQL 口令的 Secret

  2. 记录 Vault Secret OCID

  3. 如果密钥已存在,请重用该密钥。

任务 5:定义 Oracle Cloud Infrastructure Identity and Access Management 策略

附加这些 OCI IAM 策略。

Allow dynamic-group psql_monitoring_with_container_vm_dg to read vaults in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read secret-bundles in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to use metrics in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read repos in compartment <your-tenancy-id>

任务 6:启动容器实例

转到 OCI 控制台,导航到 Developer ServicesContainer ArtifactContainer InstancesCreate Instance ,然后输入以下信息:

注:无需通过 OCI IAM 动态组授予访问权限。

图像

任务 7:检查 OCI 控制台中的日志

转到 OCI 控制台,导航到开发人员服务容器对象容器实例,选择实例,然后单击容器选项卡以检查日志和运行时状态。

任务 8:在度量浏览器中查看度量

转到 OCI 控制台,导航到 Observability & ManagementMetrics Explorer 并输入以下信息:

查询示例:

replication_lag_metric[1m]{DBSystemId = "<your-db-system-ocid>"}.mean()

任务 9:设置 OCI 通知主题和订阅

  1. 转到 OCI 控制台,导航到应用集成,然后单击通知

  2. 创建主题。例如,PostgresCustomMonitoringAlerts

  3. 添加订阅(电子邮件、Webhook 等)。

  4. 将此主题链接到预警以进行实时预警。

任务 10:为关键指标配置 OCI 监视预警

图像

图像

任务 11:创建定制仪表盘

  1. 转到 OCI 控制台,导航到可观测性和管理并单击仪表盘

  2. 单击新建仪表盘

  3. 使用度量图表查询构建器添加小部件。

  4. 输入以下信息。

    • 名称空间:输入 postgres_monitor_with_container_vm
    • 度量:选择 replication_lag_metricinactive_slot_metric
  5. 自定义图表类型、筛选器和时间范围。

图像

概要表

组件 用途
动态组 授予 OCI 对容器 VM 的访问权限
OCI Vault 安全数据库身份证明存储
OCI 注册表 主机 Docker 映像资料档案库
监视代理 收集定制 PostgreSQL 度量
预警 有关滞后、插槽和缺少数据的预警
容器 VM 运行基于 Java 的监视工具
仪表板 实时可视化指标

无服务器和弹性架构亮点

故障排除和问题

确认

更多学习资源

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

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