View a markdown version of this page

使用 AWS 服务监控 SAP RHEL Pacemaker 集群 - AWS 规范指引

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

使用 AWS 服务监控 SAP RHEL Pacemaker 集群

Harsh Thoria、Randy Germann 和 RAVEENDRA Voore,Amazon Web Services

Summary

此模式概述了使用亚马逊和 CloudWatch 亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 监控和配置适用于 SAP 应用程序和 SAP HANA 数据库服务的红帽企业 Linux (RHEL) Pacemaker 集群的警报的步骤。

该配置使您能够借助 CloudWatch 日志流、指标筛选器和警报监控 SAP SCS 或 ASCS、入队复制服务器 (ERS) 和 SAP HANA 群集资源处于 “已停止” 状态时。Amazon SNS 会向基础设施或 SAP Basis 团队发送电子邮件,告知已停止集群的状态。

您可以使用 AWS CloudFormation 脚本或 AWS 服务控制台为此模式创建 AWS 资源。此模式假设您使用的是控制台;它不提供 CloudFormation 脚本或涵盖 CloudWatch 和 Amazon SNS 的基础设施部署。Pacemaker 命令用于设置集群提醒配置。

先决条件和限制

先决条件

限制

  • 此解决方案目前适用于 RHEL 版本 7.3 及更高版本的 Pacemaker-based 集群。尚未在 SUSE 操作系统上测试过。

产品版本

  • RHEL 7.3 及更高版本

架构

目标技术堆栈

  • RHEL Pacemaker 提醒事件驱动型代理

  • Amazon Elastic Compute Cloud(Amazon EC2)

  • CloudWatch 警报

  • CloudWatch 日志组和指标筛选器

  • Amazon SNS

目标架构

下图显示了此解决方案的组件和工作流。

用于监控 SAP RHEL Pacemaker 集群的架构

自动化和扩展

  • 您可以使用 CloudFormation 脚本自动创建 AWS 资源。还可以使用其他指标筛选器来扩展和覆盖多个集群。

工具

AWS 服务

工具

  • CloudWatch 代理(统一)是一种工具,用于从 EC2 实例收集系统级指标、日志和跟踪,并从您的应用程序中检索自定义指标。

  • Pacemaker 提醒代理(适用于 RHEL 7.3 及更高版本)可在 Pacemaker 集群中发生变化(例如资源停止或重新启动)时触发操作。

最佳实践

  • 有关在上使用 SAP 工作负载的最佳实践 AWS,请参阅 SAP AWS Well-Architected 框架视角

  • 考虑为 SAP HANA 集群设置 CloudWatch 监控所涉及的成本。有关详情,请参阅 CloudWatch 文档

  • 考虑使用寻呼机或工单机制处理 Amazon SNS 提醒。

  • 请务必检查适用于个人电脑、起搏器和围栏代理的 RPM 软件包的 RHEL 高可用性 (HA) 版本。 AWS

操作说明

Task说明所需技能

创建一个 SNS 主题。

  1. 登录 AWS 管理控制台 并打开 Amazon SNS 控制台,网址为。https://console.aws.amazon.com/sns/v3/home

  2. 在 Amazon SNS 控制面板上的 Common actions(常用操作)下,选择 Create Topic(创建主题)。 

  3. 创建新主题对话框中,为类型选择标准

  4. 对于主题名称,输入主题的名称(例如 my-topic)。

  5. 选择创建主题

    这将创建一个 SNS 主题,其中包含允许您发布通知的资源策略。

  6. 复制主题 ARN(例如 arn:aws:sns:us-east-1:111122223333:my-topic)。您将在后面的步骤中用到此 ARN。

AWS 管理员

修改 SNS 主题的访问策略。

  1. 在 Amazon SNS 控制台的导航窗格中,选择主题,然后选择您创建的主题。 

  2. 选择编辑,然后转到访问策略部分。

  3. 确保访问策略中包含 CloudWatch 允许发布到此主题的服务主体之一。例如:

       {        "Sid": "Allow AWS CloudWatch to Publish to this SNS topic",       "Effect": "Allow",       "Principal": {         "Service": [           "cloudwatch.amazonaws.com"         ]       },       "Action": "SNS:Publish",       "Resource": "arn:aws:sns:us-east-1:111122223333:my-topic"     }
  4. 选择保存更改

AWS 系统管理员

订阅 SNS 主题。

  1. 在 Amazon SNS 控制台的导航窗格中,选择订阅创建订阅

  2. 对于主题 ARN,粘贴您在第一个任务中创建的 ARN。

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

  4. 对于端点,输入负责 SAP Pacemaker 集群并应接收通知的人员或团队的电子邮件地址。例如,这可以是 SAP Basis 的电子邮件地址或基础设施团队的分发列表。

  5. 选择创建订阅

  6. 在您的电子邮件应用程序中,打开 AWS 通知中的消息并确认您的订阅。

您的 Web 浏览器将显示来自 Amazon SNS 的确认响应。

AWS 系统管理员
Task说明所需技能

检查集群状态。

使用 pcs status 命令确认资源处于联机状态。

SAP Basis 管理员
Task说明所需技能

在主集群实例上配置 Pacemaker 提醒代理。

登录到主集群中的 EC2 实例,然后运行以下命令:

install --mode=0755 /usr/share/pacemaker/alerts/alert_file.sh.sample touch /var/lib/pacemaker/alert_file.sh touch /var/log/pcmk_alert_file.log chown hacluster:haclient /var/log/pcmk_alert_file.log chmod 600 /var/log/pcmk_alert_file.log pcs alert create id=alert_file description="Log events to a file." path=/var/lib/pacemaker/alert_file.sh pcs alert recipient add alert_file id=my-alert_logfile value=/var/log/pcmk_alert_file.log
SAP Basis 管理员

在辅助集群实例上配置 Pacemaker 提醒代理。

登录到辅助集群中的辅助集群 EC2 实例,然后运行以下命令:

install --mode=0755 /usr/share/pacemaker/alerts/alert_file.sh.sample touch /var/lib/pacemaker/alert_file.sh touch /var/log/pcmk_alert_file.log chown hacluster:haclient /var/log/pcmk_alert_file.log chmod 600 /var/log/pcmk_alert_file.log
SAP Basis 管理员

确认 RHEL 提醒资源已创建。

使用以下命令验证是否已创建提醒资源:

pcs alert

命令的输出将如下所示:

[root@xxxxxxx ~]# pcs alert Alerts: Alert: alert_file (path=/var/lib/pacemaker/alert_file.sh) Description: Log events to a file. Recipients: Recipient: my-alert_logfile (value=/var/log/pcmk_alert_file.log)
SAP Basis 管理员
Task说明所需技能

安装代 CloudWatch 理。

在 EC2 实例上安装 CloudWatch 代理有多种方法。使用命令行:

  1. 下载 CloudWatch 代理软件包: 

    wget https://s3.<region>.amazonaws.com/amazoncloudwatch-agent-region/redhat/amd64/latest/amazon-cloudwatch-agent.rpm

    EC2 实例 AWS 区域 所在的位置(例如,us-west-2)。<region>

  2. (可选)验证软件包签名。有关说明,请参阅 CloudWatch 文档中的验证 CloudWatch 代理软件包的签名

  3. 在第一个实例上安装代理:

    sudo rpm -U ./amazon-cloudwatch-agent.rpm
  4. 对辅助实例重复此操作。

有关详情,请参阅 CloudWatch 文档

AWS 系统管理员

将 IAM 角色附加到 EC2 实例。

要使 CloudWatch 代理能够从实例发送数据,您必须将 IAM CloudWatchAgentServerRole角色附加到每个实例。或者,您可以将 CloudWatch 代理策略添加到现有的 IAM 角色中。有关详情,请参阅 CloudWatch 文档

AWS 管理员

将 CloudWatch 代理配置为监视主群集实例上的 Pacemaker 警报代理日志文件。

  1. 通过运行以下命令配置主集群实例:

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
  2. 对于 Linux,选择 1,然后为您的监控策略选择选项。

  3. 对于是否要监控任何日志文件的问题,请选择,然后从 pcs alert 命令提供 Pacemaker 日志文件的路径。就我们而言,为 var/log/pcmk_alert_file.log

  4. 提供日志组和日志流的名称。如果您未指定日志流,则使用 AWS 实例 ID 作为默认值。

  5. 对辅助集群实例重复第 1-4 步。

AWS 管理员

在主群集和辅助群集实例上启动 CloudWatch 代理。

要启动代理,请在主集群和辅助集群中的 EC2 实例上运行以下命令:

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
AWS 管理员
Task说明所需技能

设置 CloudWatch 日志组。

  1. 在以下位置打开 CloudWatch 控制台 https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,依次选择日志组创建日志组。               

  3. 输入日志组的名称,然后选择创建日志组

CloudWatch 代理会将 Pacemaker 警报文件作为 CloudWatch 日志流传输到日志组。

AWS 管理员

设置 CloudWatch 指标筛选条件。

指标筛选器可帮助您搜索模式,例如stop <cluster-resource-name>在 CloudWatch 日志流中。识别出此模式后,指标筛选器会更新自定义指标。

  1. 在 CloudWatch 控制台的导航窗格中,选择日志组

  2. 选择您在上一个任务中创建的日志组的名称。

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

  4. 筛选模式中,输入要使用的筛选模式(例如 stop ABC_scs),以匹配名为 ABC_scs 的 SAP SCS 集群资源的停止事件。

    有关更多信息,请参阅 CloudWatch 文档中的过滤模式语法

  5. (可选)要测试您的筛选条件模式,请在 Test Pattern(测试模式)下,输入一个或多个用于测试模式的日志事件。每个日志事件必须单独占一行,因为换行符用于在日志事件消息框中分隔日志事件。

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

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

  8. 指标名称中,输入新指标的名称(例如 sapcluster_<sid>,其中 <sid> 是 SAP 系统标识名称)。

  9. 对于指标值,输入 1。 

    或者输入令牌,如 $size。对于包含 size 字段的每个日志事件,此操作会以 size 字段中的数值为增量增加该指标。

  10. 对于默认值,输入 0

  11. 选择 Create metric filter(创建指标筛选条件)

当指标筛选器在步骤 4 中识别出模式时,它会将 CloudWatch 自定义指标的值更新sapcluster_abc1

CloudWatch 警报会SAP-Cluster-QA1-ABC监控该指标,sapcluster_abc并在指标值变为 1 时发出 SNS 通知。这表示集群资源已停止,需要采取措施。

AWS 管理员、SAP Basis 管理员

为 SAP ASCS/SCS 和 ERS CloudWatch 指标设置指标警报。

根据单个指标创建警报:

  1. 在 CloudWatch 控制台的导航窗格中,选择警报所有警报

  2. 选择创建警报

  3. 选择 Select Metric(选择指标)

  4. 搜索在上一个任务中创建的自定义指标 sapcluster_monitoring

  5. 选择 SAP SCS 的指标名称(例如 sapcluster_<abc>,也是在上一个任务中创建的)。

  6. 绘成图表的指标选项卡上,设置以下项:

    • 对于 Statistic(统计数据),选择 Maximum(最大)

    • 对于周期,选择 1 分钟

    • 对于阈值类型,选择静态,并将 sapcluster_<sid> 的阈值设置为大于或等于 1 的值。

  7. 选择下一步

  8. 对于通知,请选择您在第一篇操作说明中创建的 SNS 主题。

  9. 对于名称描述,提供警报名称和简短描述,然后选择下一步

  10. 选择 Create Alarm(创建警报)

AWS 管理员

为 SAP HANA CloudWatch 指标设置指标警报。

重复上一个任务中设置 CloudWatch 指标警报的步骤,并进行以下更改:

  • 在第 5 步中,选择 SAP HANA 的指标名称(例如 sapcluster_db_<abc>)。

  • 在第 6 步中,将 sapcluster_<sid> 的阈值设置为大于 0 的值。

AWS 管理员

相关资源

附件

要访问与此文档关联的其他内容,请下载并解压缩以下文件:attachment.zip