View a markdown version of this page

使用亚马逊监控 Oracle GoldenGate 日志 CloudWatch - AWS 规范指引

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用亚马逊监控 Oracle GoldenGate 日志 CloudWatch

Chithra Krishnamurthy,Amazon Web Services

Summary

甲骨文 GoldenGate 为甲骨文数据库提供亚马逊关系数据库服务(Amazon RDS)之间或托管在亚马逊弹性计算云(Amazon EC2)上的甲骨文数据库之间的实时复制。它支持单向和双向复制。

在使用 GoldenGate 复制时,监控对于验证 GoldenGate 过程是否已启动并运行,以及确保源数据库和目标数据库同步至关重要。

此模式说明了对 GoldenGate 错误日志实施 Amazon CloudWatch 监控的步骤,以及如何设置警报以发送特定事件的通知,例如STOP您可以采取适当措施快速恢复复制。ABEND

先决条件和限制

先决条件

  • GoldenGate 在 EC2 实例上安装和配置,因此您可以对这些 EC2 实例设置 CloudWatch 监控。如果要 GoldenGate 跨AWS区域监控双向复制,则必须在运行该 GoldenGate 过程的每个 EC2 实例中安装 CloudWatch 代理。

限制

  • 此模式说明了如何使用监视 GoldenGate 进程 CloudWatch。 CloudWatch 不监控复制期间的复制延迟或数据同步问题。您必须运行单独的 SQL 查询来监控复制延迟或与数据相关的错误,如GoldenGate 文档中所述。

产品版本

  • 本文档基于 Linux x86-64 上适用于 Oracle 的 Oracle GoldenGate 19.1.0.0.4 的实现。但是,此解决方案适用于的所有主要版本 GoldenGate。

架构

目标技术堆栈

  • GoldenGate 安装在 EC2 实例上的 Oracle 二进制文件

  • 亚马逊 CloudWatch

  • Amazon Simple Notification Service(Amazon SNS)

目标架构

在 AWS 上监控 GoldenGate 日志的目标架构

工具

AWS 服务

  • Amazon CloudWatch 是一种监控服务,在此模式中用于监控 GoldenGate 错误日志。

  • Amazon SNS 是一种消息通知服务,在此模式中用于发送电子邮件通知。

其他工具

  • Oracle GoldenGate 是一种数据复制工具,您可以将其用于亚马逊 RDS for Oracle 数据库或托管在 Amazon EC2 上的 Oracle 数据库。

高级实施步骤

  1. 为代理创建 AWS Identity and Access Managem CloudWatch ent (IAM) 角色。

  2. 将 IAM 角色附加到生成 GoldenGate 错误日志的 EC2 实例。

  3. 在 EC2 实例上安装 CloudWatch 代理。

  4. 配置 CloudWatch 代理配置文件:awscli.conf和awslogs.conf。

  5. 启动代 CloudWatch 理。

  6. 在日志组中创建指标筛选器。

  7. 设置 Amazon SNS。

  8. 为指标筛选条件创建警报。当这些筛选条件捕获事件时,Amazon SNS 会发送电子邮件提醒。

有关详细说明,请参阅下一部分。

操作说明

Task说明所需技能

创建 IAM 角色。

访问 AWS 资源需要权限,因此您可以创建 IAM 角色以包含每台服务器运行 CloudWatch 代理所需的权限。

要创建 IAM 角色:

  1. 登录 AWS 管理控制台并在上打开 IAM 控制台https://console.aws.amazon.com/iam/。

  2. 在导航窗格中,选择角色,然后选择创建角色。

  3. 在可信实体类型中选择 Amazon Web Services。

  4. 对于常见用例,选择 EC2,然后选择下一步。

  5. 在策略列表中,选中旁边的复选框CloudWatchAgentServerPolicy。如有必要,请使用搜索框查找该策略。

  6. 选择下一步。

  7. 对于角色名称,请输入新角色的名称,如 goldengate-cw-monitoring-role或所需其他名称。

  8. (可选)对于角色描述,请输入描述。

  9. 确认它CloudWatchAgentServerPolicy显示在 “策略名称” 下。

  10. (可选)添加一个或多个标签(键值)对,以组织、追踪或控制对此角色的访问,然后选择创建角色。

AWS 常规
Task说明所需技能

将 IAM 角色附加到生成 GoldenGate 错误日志的 EC2 实例。

GoldenGate 必须将生成的错误日志填充到 CloudWatch 并进行监控,因此您需要将您在步骤 1 中创建的 IAM 角色附加到 GoldenGate 正在运行的 EC2 实例。

将 IAM 角色附加到实例:

  1. 打开位于 https://console.aws.amazon.com/ec2/ 的 Amazon EC2 控制台。

  2. 在导航窗格中,选择实例,然后找到 GoldenGate 正在运行的实例。

  3. 选择实例,然后依次选择操作、安全性、修改 IAM 角色。

  4. 选择第一步中创建的 IAM 角色,将其附加到实例,然后选择保存。

AWS 常规
Task说明所需技能

在 GoldenGate EC2 实例上安装 CloudWatch 代理。

要安装代理,请运行命令:

sudo yum install -y awslogs
AWS 常规

编辑代理配置文件。

  1. 运行如下命令。

    sudo su -
  2. 编辑此文件以根据需要更新 AWS 区域。

    cat /etc/awslogs/conf [plugins] cwlogs = cwlogs [default] region = us-east-1
  3. 编辑/etc/awslogs/awslogs.conf文件以更新文件名、日志组名称和 date/time 格式。必须指定 date/time 与中的日期格式相匹配ggserror.log;否则,日志流将不会流入 CloudWatch。例如:

    datetime_format = %Y-%m-%dT%H:%M:%S%z file = /u03/oracle/oragg/ggserr.log log_group_name = goldengate_monitor
AWS 常规

启动代 CloudWatch 理。

要启动代理,请使用以下命令。

$ sudo service awslogsd start

启动代理后,可以在 CloudWatch 控制台中查看日志组。日志流将包含文件的内容。

AWS 常规
Task说明所需技能

为关键字 ABEND 和 STOPPED 创建指标筛选器。

当您为日志组创建指标筛选条件时,只要在错误日志中识别出筛选条件,它就会启动警报并根据 Amazon SNS 配置发送电子邮件通知。

创建指标筛选条件:

  1. 打开 CloudWatch 控制台,网址为https://console.aws.amazon.com/cloudwatch/。

  2. 选择日志组的名称。

  3. 选择 Actions(操作),然后选择 Create metric filter(创建指标筛选条件)。

  4. 对于筛选器模式,指定一个模式,例如 ABEND。

  5. 选择 Next(下一步),然后为指标筛选条件输入名称。

  6. 在指标详细信息下,在指标命名空间中,输入要发布指标的 CloudWatch 命名空间的名称。如果该命名空间尚不存在,请确保选中 Create new(新建)。

  7. 对于指标值,输入 1,因为您的指标筛选条件正在计算筛选条件中关键字的出现次数。

  8. 将单位设置为无。

  9. 选择 Create metric filter(创建指标筛选条件)。可以从导航窗格找到您创建的指标筛选条件。

  10. 为 STOPPED 模式创建另一个指标筛选器。在一个日志组中,您可以创建多个指标筛选器并单独设置告警。

CloudWatch
Task说明所需技能

创建一个 SNS 主题。

在此步骤中,您将配置 Amazon SNS 以为指标筛选条件创建警报。

创建 SNS 主题:

  1. 在家中登录亚马逊 SNS 控制台。https://console.aws.amazon.com/sns/

  2. 在创建主题框中,输入主题的名称,例如 goldengate-alert,然后选择下一步。

  3. 对于类型,选择标准。

  4. 滚动到表单末尾,选择 Create topic(创建主题)。控制台会打开新主题的 Details(详细信息)页面。

Amazon SNS

创建订阅。

要创建主题订阅:

  1. 在左侧导航窗格中,选择订阅。

  2. 在订阅页面上,选择创建订阅。

  3. 在创建订阅页面上,选择主题 ARN字段以查看您的 Amazon Web Services account 中的主题列表。

  4. 选择在先前步骤中创建的主题。

  5. 对于协议,选择电子邮件。

  6. 对于 Endpoint(端点),输入可以接收通知的电子邮件地址。

  7. 选择创建订阅。控制台会打开新订阅的详细信息页面。

  8. 查看收件箱中是否有来自 AWS 通知的电子邮件,然后在电子邮件中选择确认订阅。

Amazon SNS 会打开您的 Web 浏览器,并显示带有您的订阅 ID 的订阅确认信息。

Amazon SNS
Task说明所需技能

为 SNS 主题创建警报。

要根据日志组指标筛选条件创建警报:

  1. 打开 CloudWatch 控制台,网址为https://console.aws.amazon.com/cloudwatch/。

  2. 从左侧导航窗格中,选择 Logs(日志),然后选择 Log groups(日志组)。

  3. 选择包含您的指标筛选器的日志组。

  4. 选择 Metric filters(指标筛选条件)。

  5. 在指标筛选条件选项卡中,选中要用于创建警报的指标筛选条件对应的复选框。

  6. 选择创建警报。

  7. 对于条件,请在每个部分中指定以下内容:

    • 对于阈值类型,选择静态。

    • 对于每当 metric_name 为. . .,选择大于。

    • 对于比. . .,指定 0。

  8. 选择下一步。

  9. 在通知下:

    • 对于 Alarm state trigger(告警状态触发器),选择 In alarm(在告警中)。

    • 对于发送通知到以下 SNS 主题,选择选择现有的主题。

    • 在电子邮件框中,选择您在上一步中创建的 Amazon SNS 主题。

  10. 选择下一步。

  11. 对于名称和描述,输入告警的名称和描述。

    注意

    对于描述,您可以指定实例名称,以便通知电子邮件具有描述性。

  12. 对于预览和创建,确保您的配置正确,然后选择创建警报。

完成这些步骤后,每当在您监控的 GoldenGate 错误日志文件 (ggserr.log) 中检测到这些模式时,您都会收到一封电子邮件通知。

CloudWatch

问题排查

问题解决方案

GoldenGate 错误日志中的日志流不会流入 CloudWatch。

检查/etc/awslogs/awslogs.conf文件以验证文件名、日志组名称和 date/time 格式。必须指定 date/time 与中的日期格式相匹配ggserror.log。否则,日志流将不会流入 CloudWatch。

相关资源