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

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

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

由 Harsh Thoria (AWS)、Randy Germann () 和 RAVEENDRA Voore (AWS) 创作 AWS

摘要

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

该配置使您能够借助 CloudWatch 日志流ASCS、指标筛选器和警报来监控SAPSCS或、Enqueue Replication Server (ERS) 和SAPHANA群集资源处于 “已停止” 状态。Amazon SNS 会向基础设施或 Basis 团队SAP发送一封关于已停止集群状态的电子邮件。

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

先决条件和限制

先决条件

限制

  • 此解决方案目前适用于基于 Pacemak RHEL er 的 7.3 及更高版本的集群。它尚未在SUSE操作系统上进行过测试。

产品版本

  • RHEL7.3 及更高版本

架构

目标技术堆栈

  • RHELPacemaker 警报事件驱动代理

  • 亚马逊弹性计算云(亚马逊EC2)

  • CloudWatch 警报

  • CloudWatch 日志组和指标筛选器

  • Amazon SNS

目标架构

下图说明了此解决方案的组件和工作流程。

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

自动化和扩缩

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

工具

AWS 服务

工具

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

  • Pacemaker 警报代理(适用于 RHEL 7.3 及更高版本)是一种在 Pacemaker 群集中发生变化时启动操作的工具,例如资源停止或重新启动时。

最佳实践

  • 有关在上使用SAP工作负载的最佳实践 AWS,请参阅 Well-Architecte AWS d Framework SAP镜头

  • 考虑为SAPHANA集群设置 CloudWatch 监控所涉及的成本。有关更多信息,请参阅 CloudWatch 文档

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

  • 请务必检查电脑、Pacemaker 和 AWS 围栏代理RPM软件包RHEL的高可用性 (HA) 版本。

操作说明

任务描述所需技能

创建一个 SNS 主题。

  1. 登录 AWS Management Console 并在 https://console.aws.amazon.com/sns/v3/ hom SNS e 上打开亚马逊主机。

  2. 在 Amazon SNS 控制面板的 “常见操作” 下,选择 “创建主题”。 

  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. 选择 Save changes(保存更改)

AWS系统管理员

订阅 SNS 主题。

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

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

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

  4. 在 En d point 中,输入负责 SAP Pacemaker 集群并应接收通知的人员或团队的电子邮件地址。例如,这可以是 Basis 或SAP基础架构团队的通讯组列表的电子邮件地址。

  5. 选择创建订阅

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

您的网络浏览器会显示来自亚马逊的确认回复SNS。

AWS系统管理员
任务描述所需技能

检查集群状态。

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

SAP基础管理员
任务描述所需技能

在主群集实例上配置 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基础管理员

在辅助群集实例上配置 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基础管理员

确认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基础管理员
任务描述所需技能

安装代 CloudWatch 理。

有几种方法可以在EC2实例上安装 CloudWatch 代理。要使用命令行,请执行以下操作:

  1. 下载 CloudWatch 代理软件包: 

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

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

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

  3. 在第一个实例上安装软件包:

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

有关更多信息,请参阅 CloudWatch 文档

AWS系统管理员

将IAM角色附加到实EC2例。

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

AWS 管理员

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

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

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

  3. 对于 “是否要监视任何日志文件” 的问题,请选择 “”,然后从 p cs 警报命令中提供 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 管理员
任务描述所需技能

设置 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,匹配名为的SAPSCS群集资源的停止事件ABC_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管理员、Basi SAP s 管理员

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

要基于单个指标创建警报,请执行以下操作:

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

  2. 选择创建警报

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

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

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

  6. 在 “图表化指标” 选项卡上,设置以下内容:

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

    • 对于周期,选择 1 分钟

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

  7. 选择下一步

  8. 在 “通知” 中,选择您在第一篇长篇故事中创建SNS的主题。

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

  10. 选择创建警报

AWS 管理员

为该 CloudWatch SAPHANA指标设置指标警报。

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

  • 在步骤 5 中,为其选择指标名称 SAPHANA(例如,sapcluster_db_<abc>)。

  • 对于步骤 6,将的阈值设置sapcluster_<sid>为大于 0 的值。

AWS 管理员

相关资源

附件

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