本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
什麼是 Amazon CloudWatch Application Insights?
CloudWatch Application Insights 可幫助您監控使用 Amazon EC2 執行個體以及其他 應用程式資源的應用程式。它會識別和設定關鍵指標、日誌,並在您所有的應用程式資源和技術堆疊 (例如,Microsoft SQL Server 資料庫、Web (IIS) 和應用程式伺服器、作業系統、負載平衡器和佇列) 中發出警示。並持續監控指標和日誌,以偵測和建立異常及錯誤的關聯。偵測到錯誤和異常時,Application Insights 會產生 CloudWatch Events,可用於設定通知或採取動作。為協助進行故障診斷,它會建立已偵測到問題的自動化儀表板,包括關聯的指標異常和日誌錯誤以及其他洞見,指出可能的根本原因。自動化儀表板可協助您採用補救動作,讓應用程式保持良好的運作狀態,防止應用程式的最終使用者受到影響。它也會建立 OpsItems,讓您使用 AWS SSM OpsCenter 解決問題。
您可以在 CloudWatch 上設定重要的計數器,例如鏡像寫入交易/秒、復原佇列長度和交易延遲,以及 Windows 事件日誌。當 SQL HA 工作負載發生容錯移轉事件或問題時,CloudWatch Application Insights 會提供自動化洞察,例如對查詢目標資料庫的限制存取。
CloudWatch Application Insights 已與 AWS Launch Wizard 整合,可在 AWS上部署 SQL Server HA 工作負載時提供單鍵監控設定體驗。當您在 Launch Wizard 主控台
功能
Application Insights 提供以下功能。
自動設定應用程式資源監控
CloudWatch Application Insights 可減少為您應用程式設定監控所需要的時間。其執行作業的方式是掃描應用程式資源、提供建議指標和日誌的可自訂清單,並在 CloudWatch 中設定他們以提供應用程式資源的必要可見度,例如 Amazon EC2 與 Elastic Load Balancer (ELB)。它還會對監控的指標設定動態警示。警示會根據兩週前偵測到的異常自動更新。
問題偵測和通知
CloudWatch Application Insights 會偵測應用程式潛在問題的跡象,例如指標異常和日誌錯誤。它會建立這些觀察的關聯,以顯示應用程式的潛在問題。然後產生 CloudWatch Events,可設定為接收通知或採取動作。這可讓您不必建立指標或日誌錯誤的個別警示。此外,您可以設定 Amazon SNS 通知來接收偵測到問題的提醒。
故障診斷
CloudWatch Application Insights 會為偵測到的問題建立 CloudWatch 自動儀表板。此儀表板會顯示問題的詳細資訊,包括相關聯的指標異常和日誌錯誤,以利故障診斷。它們也會提供額外的洞見,指出異常和錯誤的可能根本原因。
概念
以下是了解 Application Insights 如何監控應用程式的重要概念。
元件
構成應用程式的自動分組、獨立或自訂分組的類似資源。我們建議將類似的資源分組為自訂的元件,以利監控。
觀察
偵測到的應用程式或應用程式資源個別事件 (指標異常、日誌錯誤或例外狀況)。
問題
透過建立關聯、分類和分組相關觀察偵測到問題。
如需 CloudWatch Application Insights 的其他重要概念定義,請參閱 Amazon CloudWatch 概念。
定價
CloudWatch Application Insights 會針對所選應用程式資源設定建議的指標和日誌,使用 CloudWatch 指標、CloudWatch Logs 和 CloudWatch Events,在偵測到問題時發送通知。這些功能會根據 CloudWatch 定價
CloudWatch Application Insights 的成本
Amazon EC2 的成本包含下列功能的使用情況:
-
CloudWatch 代理程式
-
CloudWatch 代理程式日誌群組
-
CloudWatch 代理程式指標
-
Prometheus 日誌群組 (適用於 JMX 工作負載)
-
所有資源的成本包括以下功能的使用:
-
CloudWatch 警示 (大部分成本)
-
SSM OpsItem (最低成本)
成本計算範例
在這個範例中的成本根據下列情況來計算。
您建立了包含下列項目的資源群組:
-
一個安裝了 SQL Server 的 Amazon EC2 執行個體。
-
連接了 Amazon EBS 磁碟區。
當您使用 CloudWatch Application Insights 加入此資源群組時,會偵測到安裝在 Amazon EC2 執行個體上的 SQL Server 工作負載。CloudWatch Application Insights 會開始監控以下指標。
針對 SQL Server 執行個體,監控以下指標:
-
CPUUtilization
-
StatusCheckFailed
-
記憶體 % 使用中的認可位元組
-
記憶體可用的 MB 數
-
網路介面位元組總數/秒
-
分頁檔用量 %
-
實體磁碟 % 磁碟時間
-
處理器 % 處理器時間
-
SQLServer:Buffer Manager 快取命中率
-
SQLServer:Buffer Manager 預期壽命
-
SQLServer:General Statistics Processes blocked
-
SQLServer:一般統計資料使用者連線
-
SQLServer:鎖定死鎖數目/秒
-
SQLServer:SQL Statistics 每秒批次要求數
-
系統處理器佇列長度
針對連接到 SQL Server 執行個體的磁碟區,監控以下指標:
-
VolumeReadBytes
-
VolumeWriteBytes
-
VolumeReadOps
-
VolumeWriteOps
-
VolumeTotalReadTime
-
VolumeTotalWriteTime
-
VolumeIdleTime
-
VolumeQueueLength
-
VolumeThroughputPercentage
-
VolumeConsumedReadWriteOps
-
BurstBalance
在這個案例中,成本是根據 CloudWatch 定價
-
自訂指標
在此案例中,上述指標有 13 個指標會使用 CloudWatch 代理程式發射至 CloudWatch。這些指標會被視為自訂指標。每個自訂指標的費用為每月 0.3 USD。這些自訂指標的總費用為 13 * 0.3 USD = 每月 3.90 USD。
-
警示
在此案例中,CloudWatch Application Insights 總共監控 26 個指標,進而產生 26 個警示。每個警示的費用為每月 0.1 USD。警示的總費用為 26 * 0.1 USD = 每月 2.60 USD。
-
資料擷取和錯誤日誌
資料擷取的成本為每 GB 0.05 USD,而 SQL Server 錯誤日誌的儲存費用為每 GB 0.03 USD。資料擷取和錯誤日誌的總成本為每 GB 0.05 USD + 每 GB 0.03 USD = 每 GB 0.08 USD。
-
Amazon EC2 Systems Manager OpsItem
系統會針對每個被 CloudWatch Application Insights 偵測到的問題建立 SSM OpsItem。如果您的應用程式中有 n 個問題,總成本為每月 0.00267 USD * n。
相關服務
以下服務與 CloudWatch Application Insights 一起使用:
相關 AWS 服務
-
Amazon CloudWatch 可讓您全面了解系統的資源使用率、應用程式效能和運作狀態。它會收集並追蹤指標、傳送警示通知、根據您定義的規則自動更新正在監控的資源,並可讓您監控自己的自訂指標。CloudWatch Application Insights 透過 CloudWatch 啟動,特別是在 CloudWatch 預設的操作儀表板內。如需更多資訊,請參閱 Amazon CloudWatch 使用者指南。
-
CloudWatch Container Insights 會從您的容器化應用程式和微型服務收集、彙總及總結指標和日誌。您可以使用 Container Insights 來監控 Amazon ECS、Amazon Elastic Kubernetes Service 和 Amazon EC2 上的 Kubernetes 平台。Application Insights 在 Container Insights 或 Application Insights 主控台上啟用時,Application Insights 會在 Container Insights 儀表板上顯示偵測到的問題。如需詳細資訊,請參閱 Container Insights。
-
Amazon DynamoDB 是全受管的 NoSQL 資料庫服務,可讓您卸下操作及擴展分散式資料庫的管理負擔,不再需要煩惱硬體佈建、設定和組態、複寫、軟體修補或叢集擴展。DynamoDB 還提供靜態加密,解決了保護敏感資料所涉及的操作負擔和複雜性。
-
Amazon EC2 在 AWS 雲端中提供可擴展的運算容量。您可使用 Amazon EC2 按需要啟動任意數量的虛擬伺服器,設定安全性和聯網功能以及管理儲存。您可以擴展與縮減規模,以處理需求或熱門峰值的變更,從而降低您預測流量的需求。如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南或 Amazon EC2 Windows 執行個體使用者指南。
-
Amazon Elastic Block Store (Amazon EBS) 提供區塊層級儲存體磁碟區,可搭配使用 Amazon EC2 執行個體。Amazon EBS 磁碟區的行為與未格式化的原始區塊型儲存設備相似。您可以將這些磁碟區作為裝置,掛載在您的執行個體上。連接至執行個體的 Amazon EBS 磁碟區將顯示為儲存體磁碟區,其可永久保留,不受執行個體的壽命影響。您可以在這些磁碟區上建立檔案系統,或利用您使用區塊型儲存裝置 (例如硬碟) 的任何方式來使用它們。您可以動態變更連接到執行個體的磁碟區組態。如需詳細資訊,請參閱 Amazon EBS 使用者指南。
-
Amazon EC2 Auto Scaling 能確保您有正確的 EC2 執行個體數量可處理應用程式的負載。如需詳細資訊,請參閱 Amazon EC2 Auto Scaling 使用者指南。
-
Elastic Load Balancing 會將傳入的應用程式或網路流量分配到多個可用區域的多個目標,例如 EC2 執行個體、容器和 IP 地址。如需詳細資訊,請參閱《Elastic Load Balancing 使用者指南》。
-
IAM 是一種 Web 服務,可協助您安全地控制使用者對 AWS 資源的存取。使用 IAM 來控制誰可以使用您的 AWS 資源 (驗證),以及控制他們可以使用的資源,以及他們可以如何使用它們 (授權)。如需詳細資訊,請參閱 Amazon CloudWatch 身分驗證與存取控制。
-
AWS Lambda 可讓您建置由 事件觸發的函數組成的無伺服器應用程式,並使用 CodePipeline 和 AWS CodeBuild 自動部署這些應用程式。如需詳細資訊,請參閱 AWS Lambda 應用程式。
-
AWS Launch Wizard for SQL Server 可減少將 SQL Server 高可用性解決方案部署到雲端所需的時間。您可以在服務主控台上輸入應用程式需求,包括效能、節點數量和連線能力,並 AWS Launch Wizard 識別部署和執行 SQL Server Always On 應用程式的適當 AWS 資源。
-
AWS 資源群組可協助您組織組成應用程式的 資源。使用 Resource Groups,您可以一次管理和自動化大量資源的任務。一個應用程式只能註冊一個資源群組。如需詳細資訊,請參閱《AWS Resource Groups 使用者指南》。
-
Amazon SQS 提供安全、耐用且可用的託管佇列,可讓您整合與分離分散式軟體系統和元件。如需詳細資訊,請參閱 Amazon SQS 使用者指南。
-
AWS Step Functions 是一種無伺服器函數編譯器,可讓您將各種 AWS 服務和資源,包括 AWS Lambda 函數,排序為結構化的視覺化工作流程。如需詳細資訊,請參閱《AWS Step Functions 使用者指南》https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html。
-
AWS SSM OpsCenter 會彙總和標準化跨 服務的 OpsItems,同時提供每個 OpsItem、相關 OpsItems 和相關資源的相關內容調查資料。OpsCenter 也提供可用來快速解決問題的 Systems Manager Automation 文件 (Runbook)。您可以為每個 OpsItem 指定可搜尋的自訂資料。您也可以依狀態和來源,檢視自動產生的 OpsItem 摘要報告。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》。
-
Amazon API Gateway 是一項 AWS 服務,可用於建立、發佈、維護、監控和保護任何規模的 REST、HTTP 和 WebSocket APIs。API APIs 來存取 AWS 或其他 Web 服務,以及存放在 AWS 雲端中的資料。如需詳細資訊,請參閱《Amazon API Gateway 使用者指南。
注意
Application Insights 僅支援 REST API 通訊協定 (API Gateway 服務的第 1 版)。
-
Amazon Elastic Container Service (Amazon ECS) 是全受管容器協同運作服務。您可以使用 Amazon ECS 執行最敏感和任務關鍵型應用程式。如需詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》。
-
Amazon Elastic Kubernetes Service (Amazon EKS) 是一項受管服務,可讓您在 上執行 Kubernetes, AWS 而無需安裝、操作和維護您自己的 Kubernetes 控制平面或節點。Kubernetes 是一套開放原始碼系統,用於容器化應用程式的自動化部署、擴展與管理。如需詳細資訊,請參閱《Amazon EKS 使用者指南》。
-
Amazon EC2 上的 Kubernetes。Kubernetes 是開放原始碼軟體,可協助您大規模部署及管理容器化應用程式。Kubernetes 可管理 Amazon EC2 運算執行個體的叢集,並在這些執行個體上執行容器,其中包含部署、維護和擴展程序。藉助 Kubernetes,您可以在內部部署和雲端使用相同的工具集來執行各種類型的容器化應用程式。如需詳細資訊,請參閱 Kubernetes 文件:入門
。 -
Amazon FSx 可協助您啟動和執行由 AWS全受管的熱門檔案系統。使用 Amazon FSx,您可以利用常見的開放原始碼和商業授權檔案系統的功能集與效能,從而避免費時的管理任務。如需詳細資訊,請參閱 Amazon FSx 說明文件。
-
Amazon Simple Notification Service (SNS) 是一項全受管簡訊服務,適用於應用程式對應用程式和應用程式對人的通訊。您可以設定 Amazon SNS 以透過 Application Insights 進行監控。當 Amazon SNS 設定為用於監控的資源時,Application Insights 會追蹤 SNS 指標,以協助判斷 SNS 訊息可能會遇到問題或失敗的原因。
-
Amazon Elastic File System (Amazon EFS) 是全受管的彈性 NFS 檔案系統,可與 AWS 雲端 服務和內部部署資源搭配使用。該系統建置為可根據需求擴展到 PB 級,而不會中斷應用程式。儲存容量會在您新增和移除的檔案時自動擴展和縮減,讓您無需佈建和管理容量以配合擴展。如需詳細資訊,請參閱 Amazon Elastic File System 文件。
相關第三方服務
-
對於 Application Insights 中監控的某些工作負載和應用程式,Prometheus JMX exporter 使用 AWS Systems Manager Distributor 進行安裝,以便 CloudWatch Application Insights 能夠擷取 Java 特定的指標。當您選擇監控 Java 應用程式時,Application Insights 會自動為您安裝 Prometheus JMX Exporter。
支援的應用程式元件
CloudWatch Application Insights 會掃描您的資源群組,以識別應用程式元件。元件可為獨立、自動分組 (例如 Auto Scaling 群組中或負載平衡器後端的執行個體) 或自訂 (將個別的 Amazon EC2 執行個體集合在一起)。
CloudWatch Application Insights 支援以下元件:
AWS 元件
-
Amazon EC2
-
Amazon EBS
-
Amazon RDS
-
Elastic Load Balancing:Application Load Balancer 和 Classic Load Balancer (這些負載平衡器的所有目標執行個體都會予以識別並設定)。
-
Amazon EC2 Auto Scaling 群組: AWS Auto Scaling (Auto Scaling 群組會針對所有目標執行個體動態設定;如果您的應用程式擴展,CloudWatch Application Insights 會自動設定新的執行個體)。Auto Scaling 群組不支援以 CloudFormation 堆疊為基礎的資源群組。
-
AWS Lambda
-
Amazon Simple Queue Service (Amazon SQS)
-
Amazon DynamoDB 資料表
-
Amazon S3 儲存貯體指標
-
AWS Step Functions
-
Amazon API Gateway REST API 階段
-
Amazon Elastic Container Service (Amazon ECS):叢集、服務和任務
-
Amazon Elastic Kubernetes Service (Amazon EKS):叢集
-
Amazon EC2 上的 Kubernetes:在 EC2 上執行的 Kubernetes 叢集
-
Amazon SNS 主題
CloudWatch Application Insights 目前不會追蹤任何其他元件類型資源。如果您的 Application Insights 應用程式不顯示支援的元件類型,此元件可能已註冊,並由 Application Insights 監控的您其他應用程式所管理。
支援的技術堆疊
您可以使用 CloudWatch Application Insights 來監控在 Windows Server 和 Linux 作業系統上執行的應用程式,方法是選取下列其中一項技術的應用程式層的下拉式功能表選項:
-
前端:Microsoft Internet Information Services (IIS) Web 伺服器
-
工作者層:
-
.NET Framework
-
.NET Core
-
-
應用程式:
Java
SAP NetWeaver 標準、分散式和高可用性部署
-
Active Directory
-
SharePoint
-
資料庫:
-
在 Amazon RDS 或 Amazon EC2 上執行的 Microsoft SQL Server (包括 SQL Server 高可用性組態。請參閱「元件組態範例」)。
-
在 Amazon RDS、Amazon Aurora 或 Amazon EC2 上執行的 MySQL
-
在 Amazon RDS 或 Amazon EC2 上執行的 PostgreSQL
-
Amazon DynamoDB 資料表
-
在 Amazon RDS 或 Amazon EC2 上執行的 Oracle
-
在單一 Amazon EC2 執行個體和多個 EC2 執行個體上的 SAP HANA 資料庫
-
跨可用區域 SAP HANA 資料庫高可用性設定
-
單一 Amazon EC2 執行個體上的 SAP Sybase ASE 資料庫
-
跨可用區域 SAP Sybase ASE 資料庫高可用性設定
-
如果上面列出的任何技術堆疊都不適用於您的應用程式資源,您可以從 Manage monitoring (管理監控) 頁面上的應用程式層下拉式功能表中選擇 Custom (自訂),進而監控您的應用程式堆疊。