自動建立標籤型 Amazon CloudWatch 儀表板 - AWS 方案指引

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

自動建立標籤型 Amazon CloudWatch 儀表板

由 Janak Vadaria (AWS)、 RAJNEESH TYAGI (AWS) 和 Vinodkumar Mandalapu (AWS) 建立

程式碼儲存庫: Goldensignals

環境:生產

技術:管理和治理

AWS 服務:AWSCDK;Amazon CloudWatch;AWS CodeBuild; AWS CodePipeline

Summary

手動建立不同的 Amazon CloudWatch 儀表板可能很耗時,特別是當您必須建立和更新多個資源以自動擴展環境時。自動建立和更新 CloudWatch 儀表板的解決方案可以節省您的時間。此模式可協助您部署全自動 AWS Cloud Development Kit (AWS CDK) 管道,根據標籤變更事件建立和更新 AWS 資源的 CloudWatch 儀表板,以顯示 Golden Signals 指標。

在網站可靠性工程 (SRE) 中,Golden Signals 是指一組全面的指標,可從使用者或消費者的角度提供服務的廣泛檢視。這些指標包含延遲、流量、錯誤和飽和。如需詳細資訊,請參閱 網站上的什麼是 Site Reliability Engineering (SRE)? AWS 。

此模式提供的解決方案是事件驅動的解決方案。部署後,它會持續監控標籤變更事件,並自動更新 CloudWatch 儀表板和警示。

先決條件和限制

先決條件

限制

此解決方案目前僅針對下列AWS服務建立自動儀表板:

架構

目標技術堆疊

目標架構

建立標籤型 CloudWatch 儀表板的目標架構
  1. 已設定應用程式標籤或程式碼變更的 AWS 標籤變更事件會在 中啟動管道, AWS CodePipeline 以建置和部署更新的 CloudWatch 儀表板。

  2. AWS CodeBuild 會執行 Python 指令碼來尋找已設定標籤的資源,並將資源存放在 CodeBuild 環境中IDs的本機檔案中。

  3. CodeBuild 會執行 cdk 合成來產生部署 CloudWatch 儀表板和警示的 AWS CloudFormation 範本。

  4. CodePipeline 會將 AWS CloudFormation 範本部署到指定的 AWS 帳戶 和 區域。

  5. 堆疊成功 AWS CloudFormation 部署後,您可以檢視 CloudWatch 儀表板和警示。

自動化和擴展

此解決方案已使用 進行自動化 AWS CDK。您可以在 GitHub Amazon 儲存庫的 Golden Signals Dashboards CloudWatch中找到程式碼。如需額外的擴展和建立自訂儀表板,您可以設定多個標籤金鑰和值。

工具

Amazon 服務

  • Amazon EventBridge 是一種無伺服器事件匯流排服務,可協助您將應用程式與各種來源的即時資料連線,包括 AWS Lambda 函數、使用API目的地HTTP的叫用端點,或其他 中的事件匯流排 AWS 帳戶。

  • AWS CodePipeline 可協助您快速建模和設定軟體版本的不同階段,並自動化持續發行軟體變更所需的步驟。

  • AWS CodeBuild 是完全受管建置服務,可協助您編譯原始程式碼、執行單位測試,並產生準備好部署的成品。

  • AWS Command Line Interface (AWS CLI) 是一種開放原始碼工具,可協助您透過命令列 Shell 中的命令與 AWS服務互動。

  • AWS Identity and Access Management (IAM) 透過控制誰經過身分驗證並獲授權使用資源,協助您安全地管理對 AWS 資源的存取。

  • Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。

最佳實務

作為安全最佳實務,您可以對連接到管道的來源儲存庫使用加密和身分驗證。如需其他最佳實務,請參閱 CodePipeline 文件中的CodePipeline 最佳實務和使用案例

史詩

任務描述所需的技能

設定和部署範例應用程式。

  1. 使用 命令複製 GitHub 範例程式碼儲存庫

    git clone https://github.com/aws-samples/golden-signals-dashboards-sample-app
  2. 導覽至電腦上複製的儲存庫,然後使用您選擇的編輯器開啟 src/project-settings.ts 檔案。

  3. 根據您的 AWS 資源標籤和應用程式映射變更projectSettings常數值。

  4. 設定 AWS_ACCOUNTAWS_REGIONGS_DASHBOARD_INSTANCE環境變數:

    • AWS_ACCOUNT 設定為 AWS 您帳戶的帳戶 ID。

    • AWS_REGION 設定為您要部署範例應用程式的 區域。

    • 根據您的開發環境prod,將 GS_DASHBOARD_INSTANCE設定為 devtest、 或 。(我們建議test使用此模式所述的測試程序。)

  5. AWS CLI 使用 AWS 憑證設定 。如需詳細資訊,請參閱 AWS CLI 文件中的使用命令設定和檢視組態設定

  6. 執行下列命令以部署 Golden Signals 儀表板範例應用程式:

    sh deploy.sh
AWS DevOps

自動建立儀表板和警示。

部署範例應用程式後,您可以建立此解決方案支援的任何具有預期標籤值的資源,這些值會自動建立指定的儀表板和警示。

若要測試此解決方案,請建立 AWS Lambda 函數:

  1. 在您 AWS 區域 部署範例應用程式的 AWS Management Console 中登入 。

  2. 在 開啟 Lambda 主控台https://console.aws.amazon.com/lambda/

  3. 選擇建立函數 ,然後輸入函數名稱。

  4. 進階設定窗格中,選取啟用標籤 ,然後選擇新增標籤 。輸入下列索引鍵和值:

    • 索引鍵:AutoDashboard

    • 值:True

  5. 選擇建立函數

    Lambda 函數會立即啟動程式碼管道,該管道會自動為該特定 Lambda 函數建立儀表板和警示。

  6. 若要檢視自動儀表板和警示,請在 開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/。您可以檢視您在projectSettings常數中指定的函數的自訂儀表板和警示 (預設為 APP1-lambda)。

  7. 選取 Lambda 函數的儀表板,以檢視作為此解決方案一部分建立的其他自動化儀表板。

  8. 針對其他 服務重複這些步驟,例如 Amazon SNS AWS Auto Scaling、RDSAmazon 和 DynamoDB ,以產生相關聯的儀表板。如需 Amazon 的範例RDS,請參閱其他資訊一節。

AWS DevOps
任務描述所需的技能

移除golden-signals-dashboard建構。

  1. 若要移除範例應用程式建立的所有 AWS CloudFormation 堆疊,您必須重新設定 AWS_ACCOUNTAWS_REGIONGS_DASHBOARD_INSTANCE環境變數。destroy.sh 命令需要這些組態。

    • AWS_ACCOUNT 是您帳戶的 AWS 帳戶 ID。

    • AWS_REGION 是您部署範例應用程式的 區域。

    • GS_DASHBOARD_INSTANCEtestdevprod,根據您先前的設定而定。

  2. AWS CLI 使用您的 AWS 憑證設定 。

  3. 執行下列命令以移除範例應用程式和所有相關聯的 AWS CloudFormation 堆疊:

    sh destroy.sh
AWS DevOps

故障診斷

問題解決方案

找不到 Python 命令 (請參閱第 8 findresources.sh行)。

檢查 Python 安裝的版本。如果您已安裝 Python 第 3 版,請將 resources.sh 檔案python3的第 8 行python取代為 ,然後再次執行 sh deploy.sh命令以部署解決方案。

相關資源

其他資訊

下圖顯示作為此解決方案一部分RDS建立的 Amazon 範例儀表板。

Amazon 的範例儀表板 RDS