使用 AWS 服務監控 SAP RHEL 起搏器叢集 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS 服務監控 SAP RHEL 起搏器叢集

由刺耳索里亞(AWS),蘭迪·德拉曼(AWS)和雷文德拉沃爾(AWS)創建

環境:生產

技術: CloudNative; 基礎設施; 操作系統

工作負載:SAP

AWS 服務:Amazon CloudWatch;Amazon SNS;Amazon CloudWatch 日誌

Summary

此模式概述了使用 Amazon 和亞馬遜簡單通知服務 (Amazon SNS),為 SAP 應用程式和 SAP HANA 資料庫服務的 RHEL (RHEL) 起搏器叢集監控 CloudWatch 和設定警示的步驟。

此組態可讓您在 SAP SCS 或 ASCS、排入佇列複寫伺服器 (ERS) 以及 SAP HANA 叢集資源時,藉由 CloudWatch 記錄串流、指標篩選器和警示的協助來監視這些資源處於「已停止」狀態。Amazon SNS 會向基礎設施或 SAP 基礎設施團隊傳送有關已停止叢集狀態的電子郵件。

您可以使用 AWS CloudFormation 指令碼或 AWS 服務主控台來建立此模式的 AWS 資源。此模式假設您正在使用主控台;它不提供 CloudWatch 和 Amazon SNS 的 CloudFormation 指令碼或涵蓋基礎設施部署。起搏器指令用於設定叢集警示配置。

先決條件和限制

先決條件

限制

  • 此解決方案目前適用於 RHEL 7.3 版及更新版本的起搏器叢集。尚未在 SUSE 作業系統上進行測試。

產品版本

  • RHEL 7.3 及更高版本

架構

目標技術堆疊

  • RHEL 起搏器警示事件驅動代理程式

  • Amazon Elastic Compute Cloud (Amazon EC2)

  • CloudWatch 警報

  • CloudWatch 日誌群組和量度篩選

  • Amazon SNS

目標架構

下圖說明此解決方案的元件和工作流程。

監控 SAP RHEL 起搏器叢集的架構

自動化和規模

  • 您可以使用 CloudFormation 指令碼自動建立 AWS 資源。您也可以使用其他度量篩選器來縮放和涵蓋多個叢集。

工具

AWS 服務

工具

  • CloudWatch 代理程式 (統一) 是一種工具,可從 EC2 執行個體收集系統層級指標、日誌和追蹤,並從應用程式擷取自訂指標。

  • Pacemaker 警示代理程式 (適用於 RHEL 7.3 及更新版本) 是一種工具,可在 Pacemaker 叢集中發生變更時 (例如資源停止或重新啟動時) 啟動動作。

最佳實務

  • 如需在上使用 SAP 工作負載的最佳做法 AWS,請參閱 SAP Lens 以取 AWS 得 Well-Architected 的架構。

  • 考慮為 SAP HANA 叢集設定 CloudWatch 監控所需的成本。如需詳細資訊,請參閱CloudWatch 文件

  • 請考慮針對 Amazon SNS 警示使用呼叫器或票務機制。

  • 請務必檢查 RPM 套件的 RPM 套件是否適用於個人電腦、心臟起搏器和 AWS 隔離代理程式的 RHEL 高可用性 (HA) 版本。

史诗

任務描述所需技能

建立 SNS 主題。

  1. 登入 AWS Management Console 並開啟 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 系統管理員
任務描述所需技能

檢查叢集狀態。

使用 pcs 狀態指令來確認資源是否處於線上狀態。

SAP 基礎管理員
任務描述所需技能

在主要叢集執行處理上設定 Pacemaker 警示代理程式。

登入 pimary 叢集中的 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

    AWS 區域 其中<region>是 EC2 執行個體所在的位置 (例如,us-west-2)。

  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 警示指令提供 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 量度篩選器。

量度篩選器可協助您搜尋 CloudWatch 記錄資料流stop <cluster-resource-name>中的樣式。識別出此病毒碼時,度量篩選器會更新自訂量度。

  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 基礎管理員

為 SAP ASCS/SCS 和 ERS CloudWatch 量度設定量度警示。

若要根據單一量度建立警示:

  1. 在 CloudWatch 主控台的功能窗格中,選擇 [報]、[所有鬧鐘]。

  2. 選擇 Create alarm (建立警示)。

  3. 選擇 Select Metric (選取指標)。

  4. 搜尋在先前工作中建立的自訂量度sapcluster_monitoring

  5. 選擇 SAP SCS 的測量結果名稱 (例如,sapcluster_<abc>),這個名稱也是在上一個作業中建立的。

  6. 在「圖形化量度」標籤上,設定下列項目:

    • 對於 Statistic (統計數字),選擇 Maximum (最大值)。

    • 對於期間,選擇 1 分鐘

    • 對於臨界值類型,選擇靜態sapcluster_<sid>將臨界值設定為大於或等於 1 的值。

  7. 選擇下一步

  8. 在「通知」中,選取您在第一個史詩中建立的 SNS 主題。

  9. 在 [名稱] 和 [說明] 中,提供警示名稱和簡短描述,然後選擇 [下一步]。

  10. 選擇建立警示

AWS 管理員

為 SAP HANA CloudWatch 量度設定量度警示。

透過以下變更,重複上一個工作設定 CloudWatch 量度警示的步驟:

  • 對於步驟 5,請選擇 SAP HANA 的測量結果名稱 (例如,sapcluster_db_<abc>)。

  • 對於步驟 6,sapcluster_<sid>將的臨界值設定為大於 0 的值。

AWS 管理員

相關資源

附件

若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip