设置您的应用程序以进行监控 - Amazon CloudWatch
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

设置您的应用程序以进行监控

本节提供使用控制台、AWS CLI 和适用于 Windows PowerShell 的 AWS 工具设置、配置和管理CloudWatch Application Insights for .NET and SQL Server 应用程序的步骤。

使用 CloudWatch 控制台添加和配置应用程序

从 CloudWatch 控制台添加和配置应用程序

要从 CloudWatch 控制台开始使用CloudWatch Application Insights for .NET and SQL Server,请执行下列步骤。

  1. 开始。 打开 CloudWatch 控制台登陆页面。从左侧导航窗格中,选择设置。从 Settings (设置) 页面中,选择 Application Insights for .NET and SQL Server (适用于 .NET 和 SQL Server 的 Application Insights) > View applications to get started (查看应用程序以开始使用)

  2. 添加应用程序。 要为 .NET 和 SQL Server 应用程序设置监控,请在CloudWatch Application Insights for .NET and SQL Server 页面上选择 Add an application (添加应用程序)。该页面显示使用CloudWatch Application Insights for .NET and SQL Server 监控的应用程序列表及其监控状态。在选择添加应用程序后,将转到添加应用程序页面。

  3. 选择资源组。Add an application (添加应用程序) 页面上,要将应用程序添加到CloudWatch Application Insights for .NET and SQL Server,请从下拉列表中选择包含应用程序资源的 AWS 资源组。这些资源包括前端服务器、负载均衡器、Auto Scaling 组和数据库服务器。

    将按以下格式为应用程序生成 ARN

    arn:partition:applicationinsights:region:account-id:application/resource-group/resource-group-name

    例如:

    arn:aws:applicationinsights:us-east-1:123456789012:application/resource-group/my-resource-group

    CloudWatch Application Insights for .NET and SQL Server 支持基于标签的资源组和基于 CloudFormation 的资源组(Auto Scaling 组除外)。有关更多信息,请参阅使用标签编辑器

    如果还没有为 .NET 应用程序创建资源组,您可以创建一个资源组。有关更多信息,请参阅 AWS 资源组用户指南

  4. 添加监控详细信息。 在添加应用程序后,将转到监控详细信息页面,其中列出了应用程序组件、这些组件中的资源及其监控状态。组件是组成应用程序的类似资源的自动分组、单独分组或自定义分组。默认情况下,CloudWatch Application Insights for .NET and SQL Server 对 Auto Scaling 组中的实例以及 Elastic Load Balancer 后面的实例进行分组。在该页面上,您可以配置自定义组件,并可以管理针对每个应用程序组件的监控。有关支持的组件,请参阅支持的应用程序组件

  5. 配置组件。 在选择资源组后,将提示您配置组件。我们建议将类似的资源(如 .NET Web 服务器实例)分组到自定义组件中,以轻松添加资源以及更好地进行监控和提供相应的信息。默认情况下,CloudWatch Application Insights for .NET and SQL Server 对 Auto Scaling 组中的实例以及 Elastic Load Balancer 后面的实例进行分组。有关支持的组件,请参阅支持的应用程序组件

    应用程序组件下面,对于要设置监视器的每个组件,请选择该组件,然后选择管理监控

  6. 启用监视器。 要为应用程序组件设置监控,请选择要监控的组件,然后选择管理监控。选中启用监控复选框。在选中该复选框时,将在下拉列表中填充相关的应用程序层。选择选定组件的应用程序层。这些层表示在选定资源上运行的应用程序堆栈的一部分。

    根据您选择的层,CloudWatch Application Insights for .NET and SQL Server 将建议要为选定组件监控的日志。可以根据您的需求自定义该建议。

    有关特定于应用程序的日志,包括 Microsoft SQL Server 错误日志和 IIS 日志,请验证默认日志路径(如果有)或输入 EC2 实例中正确的日志位置。

    您还可以选择添加 Windows 事件日志,包括 Windows 日志以及应用程序和服务日志。要执行此操作,请输入您想要存储和分析的事件类型。然后,指定您想要存储在您的 CloudWatch 账户的所有事件级别(关键、错误、警告、信息性或详细)。

    您可以在 CloudWatch 账户上添加一个用于存储和分组这些日志中的日志组,这也有助于搜索。

    CloudWatch Application Insights for .NET and SQL Server 还为您的应用程序资源设置相关指标。大约监控两周这些资源,以确定相应的指标阈值。如果您以前创建了指标,则CloudWatch Application Insights for .NET and SQL Server 提取过去两周的历史数据,以确定阈值并相应地设置警报。对于新创建的指标,最多可能需要三天才会创建警报。您还可以使用在您的账户中创建的 CloudWatch 警报来监控您的应用程序资源。

  7. 保存监视器。 在选择并自定义完日志和指标后,选择保存以设置选定组件的监视器。在选择保存时,Application Insights 根据建议的指标和选择的日志为应用程序中的所有实例设置 CloudWatch 代理配置文件。该过程最多可能需要 1 小时才能完成。

    CloudWatch Application Insights for .NET and SQL Server 还为组件中的选定指标设置 CloudWatch 警报。这些警报是通过监控过去两周的历史指标模式动态更新的。

    在选择 Cancel (取消) 时,Application Insights 仅删除当前选择的内容。

    在使用CloudWatch Application Insights for .NET and SQL Server 创建新的应用程序时,系统会为您创建服务相关角色。要删除服务相关角色,您必须先在适用于 .NET 和 SQL Server 的 CloudWatch Applications Insights 上删除所有应用程序,然后手动删除该角色。有关更多信息,请参阅 对 CloudWatch Application Insights for .NET and SQL Server 使用服务相关角色

    CloudWatch Application Insights for .NET and SQL Server 现在设置为监控应用程序的指标和日志。系统最多可能需要两周的时间才能生成有意义的信息。

    *如果已配置您的资源组,并且您希望保存配置,但不希望CloudWatch Application Insights for .NET and SQL Server 监控您的应用程序,则可以禁用CloudWatch Application Insights for .NET and SQL Server。您也可以删除配置。

  8. 添加 AWS Systems Manager OpsCenter 集成。 要在检测到所选应用程序的问题时查看并获得通知,请选择 Monitoring Details (监控详细信息) 页面上的 Integrate with AWS OpsCenter (与 AWS OpsCenter 集成) 复选框。要跟踪用于解析与 AWS 资源相关的操作工作项 (OpsItem) 的操作,请提供 SNS 主题 ARN。

  9. 查看监控(可选)。 在设置要监控的应用程序后,您可以在 CloudWatch 控制台的默认概述页面中查看和排查检测到的问题和提供的信息。您可以从 Application Insights 登录页面或 CloudWatch 登录页面中选择查看见解,以查看检测到的问题、警报和控制面板。

使用控制台禁用应用程序

要禁用应用程序,请从 CloudWatch 控制面板中的设置下面选择要禁用的应用程序。在操作下面,选择禁用。在禁用应用程序时,将禁用监控,但 Application Insights 将存储为应用程序组件保存的监控。

使用控制台为应用程序组件禁用监控

要为应用程序组件禁用监控,请从“应用程序详细信息”页面中选择要禁用监控的组件。选择管理监视器,然后取消选中启用监控复选框。

使用控制台删除应用程序

要删除应用程序,请从 CloudWatch 控制面板中的设置下面选择要删除的应用程序。在操作下面,选择删除。这会删除监控,并删除为应用程序组件保存的所有监视器。不会删除应用程序资源。

使用命令行通过 Application Insights 添加和管理应用程序

您可以使用命令行添加、管理和配置 Application Insights 应用程序以及获取有关它的信息。

添加应用程序

使用 AWS CLI 添加应用程序

要使用 AWS CLI 为名为 my-resource-group 的资源组添加应用程序,并启用 OpsCenter 以将创建的 opsItem 传递到 SNS 主题 ARN arn:aws:sns:us-east-1:123456789012:MyTopic,请使用以下命令。

aws application-insights create-application --resource-group-name my-resource-group --ops-center-enabled --ops-item-sns-topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic

使用适用于 Windows PowerShell 的 AWS 工具添加应用程序

要使用适用于 Windows PowerShell 的 AWS 工具为名为 my-resource-group 的资源组添加应用程序,并启用 OpsCenter 以将创建的 opsItem 传递到 SNS 主题 ARN arn:aws:sns:us-east-1:123456789012:MyTopic,请使用以下命令。

New-CWAIApplication -ResourceGroupName my-resource-group -OpsCenterEnabled true -OpsItemSNSTopicArn arn:aws:sns:us-east-1:123456789012:MyTopic

描述应用程序

使用 AWS CLI 描述应用程序

要使用 AWS CLI 描述在名为 my-resource-group 的资源组上创建的应用程序,请使用以下命令。

aws application-insights describe-application --resource-group-name my-resource-group

使用适用于 Windows PowerShell 的 AWS 工具描述应用程序

要使用适用于 Windows PowerShell 的 AWS 工具描述在名为 my-resource-group 的资源组上创建的应用程序,请使用以下命令。

Get-CWAIApplication -ResourceGroupName my-resource-group

列出应用程序中的组件

使用 AWS CLI 列出应用程序中的组件

要使用 AWS CLI 列出在名为 my-resource-group 的资源组上创建的组件,请使用以下命令。

aws application-insights list-components --resource-group-name my-resource-group

使用适用于 Windows PowerShell 的 AWS 工具列出应用程序中的组件

要使用适用于 Windows PowerShell 的 AWS 工具列出在名为 my-resource-group 的资源组上创建的组件,请使用以下命令。

Get-CWAIComponentList -ResourceGroupName my-resource-group

描述组件

使用 AWS CLI 描述组件

您可以使用以下 AWS CLI 命令描述属于在名为 my-resource-group 的资源组上创建的应用程序且名为 my-component 的组件。

aws application-insights describe-component --resource-group-name my-resource-group --component-name my-component

使用适用于 Windows PowerShell 的 AWS 工具描述组件

您可以使用以下适用于 Windows PowerShell 的 AWS 工具描述属于在名为 my-resource-group 的资源组上创建的应用程序且名为 my-component 的组件。

Get-CWAIComponent -ComponentName my-component -ResourceGroupName my-resource-group

将类似资源分组到自定义组件中

我们建议将类似的资源(如 .NET Web 服务器实例)分组到自定义组件中,以轻松添加资源以及更好地进行监控和提供相应的信息。目前,CloudWatch Application Insights for .NET and SQL Server 支持 EC2 实例的自定义组。

使用 AWS CLI 将资源分组到自定义组件

要使用 AWS CLI 将三个实例(arn:aws:ec2:us-east-1:123456789012:instance/i-11111arn:aws:ec2:us-east-1:123456789012:instance/i-22222arn:aws:ec2:us-east-1:123456789012:instance/i-33333)一起分组到一个名为 my-component 的自定义组件(属于为名为 my-resource-group 的资源组创建的应用程序),请使用以下命令。

aws application-insights create-component --resource-group-name my-resource-group --component-name my-component --resource-list arn:aws:ec2:us-east-1:123456789012:instance/i-11111 arn:aws:ec2:us-east-1:123456789012:instance/i-22222 arn:aws:ec2:us-east-1:123456789012:instance/i-33333

使用适用于 Windows PowerShell 的 AWS 工具将资源分组到自定义组件中

要使用适用于 Windows PowerShell 的 AWS 工具将三个实例(arn:aws:ec2:us-east-1:123456789012:instance/i-11111arn:aws:ec2:us-east-1:123456789012:instance/i-22222arn:aws:ec2:us-east-1:123456789012:instance/i-33333)一起分组到一个名为 my-component 的自定义组件(属于为名为 my-resource-group 的资源组创建的应用程序),请使用以下命令。

New-CWAIComponent -ResourceGroupName my-resource-group -ComponentName my-component -ResourceList arn:aws:ec2:us-east-1:123456789012:instance/i-11111,arn:aws:ec2:us-east-1:123456789012:instance/i-22222,arn:aws:ec2:us-east-1:123456789012:instance/i-33333

对自定义组件取消分组

使用 AWS CLI 对自定义组件取消分组

要使用 AWS CLI 对在资源组 my-resource-group 上创建的应用程序中名为 my-component 的自定义组件取消分组,请使用以下命令。

aws application-insights delete-component --resource-group-name my-resource-group --component-name my-new-component

使用适用于 Windows PowerShell 的 AWS 工具对自定义组件取消分组

要使用适用于 Windows PowerShell 的 AWS 工具对在资源组 my-resource-group 上创建的应用程序中名为 my-component 的自定义组件取消分组,请使用以下命令。

Remove-CWAIComponent -ComponentName my-component -ResourceGroupName my-resource-group

更新应用程序

使用 AWS CLI 更新应用程序

您可以使用 AWS CLI 更新应用程序,以针对在应用程序中检测到的问题生成 AWS Systems Manager OpsCenter OpsItem,并使用以下命令将创建的 OpsItem 与 SNS 主题 arn:aws:sns:us-east-1:123456789012:MyTopic 相关联。

aws application-insights update-application --resource-group-name my-resource-group --ops-center-enabled --ops-item-sns-topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic

使用适用于 Windows PowerShell 的 AWS 工具更新应用程序

您可以使用适用于 Windows PowerShell 的 AWS 工具更新应用程序,以针对在应用程序中检测到的问题生成 AWS Systems Manager OpsCenter OpsItem,并使用以下命令将创建的 OpsItem 与 SNS 主题 arn:aws:sns:us-east-1:123456789012:MyTopic 相关联。

Update-CWAIApplication -ResourceGroupName my-resource-group -OpsCenterEnabled true -OpsItemSNSTopicArn arn:aws:sns:us-east-1:123456789012:MyTopic

更新自定义组件

使用 AWS CLI 更新自定义组件

您可以使用 AWS CLI,通过使用以下命令,使用新的组件名称 my-new-component 和更新的实例组来更新名为 my-component 的自定义组件。

aws application-insights update-component --resource-group-name my-resource-group --component-name my-component --new-component-name my-new-component --resource-list arn:aws:ec2:us-east-1:123456789012:instance/i-44444 arn:aws:ec2:us-east-1:123456789012:instance/i-55555

使用适用于 Windows PowerShell 的 AWS 工具更新自定义组件

您可以使用适用于 Windows PowerShell 的 AWS 工具,通过使用以下命令,使用新的组件名称 my-new-component 和更新的实例组来更新名为 my-component 的自定义组件。

Update-CWAIComponent -ComponentName my-component -NewComponentName my-new-component -ResourceGroupName my-resource-group -ResourceList arn:aws:ec2:us-east-1:123456789012:instance/i-44444,arn:aws:ec2:us-east-1:123456789012:instance/i-55555

使用命令行管理和更新监控

您可以使用命令行管理和更新针对 Application Insights 应用程序的监控。

列出应用程序的问题

使用 AWS CLI 列出应用程序的问题

要使用 AWS CLI 列出自 Unix Epoch 以来针对在名为 my-resource-group 的资源组上创建的应用程序在 1,000 到 10,000 毫秒之间检测到的应用程序问题,请使用以下命令。

aws application-insights list-problems --resource-group-name my-resource-group --start-time 1000 --end-time 10000

使用适用于 Windows PowerShell 的 AWS 工具列出应用程序的问题

要使用适用于 Windows PowerShell 的 AWS 工具列出自 Unix Epoch 以来针对在名为 my-resource-group 的资源组上创建的应用程序在 1,000 到 10,000 毫秒之间检测到的应用程序问题,请使用以下命令。

$startDate = "8/6/2019 3:33:00" $endDate = "8/6/2019 3:34:00" Get-CWAIProblemList -ResourceGroupName my-resource-group -StartTime $startDate -EndTime $endDate

描述应用程序问题

使用 AWS CLI 描述应用程序问题

要使用 AWS CLI 描述问题 ID 为 p-1234567890 的问题,请使用以下命令。

aws application-insights describe-problem —problem-id p-1234567890

使用适用于 Windows PowerShell 的 AWS 工具描述应用程序问题

要使用适用于 Windows PowerShell 的 AWS 工具描述问题 ID 为 p-1234567890 的问题,请使用以下命令。

Get-CWAIProblem -ProblemId p-1234567890

描述与问题关联的异常或错误

使用 AWS CLI 描述与问题关联的异常或错误

要使用 AWS CLI 描述与问题 ID 为 p-1234567890 的问题关联的异常或错误,请使用以下命令。

aws application-insights describe-problem-observations --problem-id -1234567890

使用适用于 Windows PowerShell 的 AWS 工具描述与问题关联的异常或错误

要使用适用于 Windows PowerShell 的 AWS 工具描述与问题 ID 为 p-1234567890 的问题关联的异常或错误,请使用以下命令。

Get-CWAIProblemObservation -ProblemId p-1234567890

描述应用程序的异常或错误

使用 AWS CLI 描述应用程序的异常或错误

要使用 AWS CLI 描述观察 ID 为 o-1234567890 的应用程序的异常或错误,请使用以下命令。

aws application-insights describe-observation —observation-id o-1234567890

使用适用于 Windows PowerShell 的 AWS 工具描述应用程序的异常或错误

要使用适用于 Windows PowerShell 的 AWS 工具描述观察 ID 为 o-1234567890 的应用程序的异常或错误,请使用以下命令。

Get-CWAIObservation -ObservationId o-1234567890

描述组件的监控配置

使用 AWS CLI 组件描述组件的监控配置

要使用 AWS CLI 描述在资源组 my-resource-group 上创建的应用程序中名为 my-component 的组件的监控配置,请使用以下命令。

aws application-insights describe-component-configuration —resource-group-name my-resource-group —component-name my-component

使用适用于 Windows PowerShell 的 AWS 工具描述组件的监控配置

要使用适用于 Windows PowerShell 的 AWS 工具描述在资源组 my-resource-group 上创建的应用程序中名为 my-component 的组件的监控配置,请使用以下命令。

Get-CWAIComponentConfiguration -ComponentName my-component -ResourceGroupName my-resource-group

有关组件配置和示例 JSON 文件的更多信息,请参阅组件配置

描述建议的组件监控配置

使用 AWS CLI 描述建议的组件监控配置

当组件是 .NET Worker 应用程序的一部分时,您可以使用 AWS CLI,通过使用以下命令来描述在资源组 my-component 上创建的应用程序中名为 my-resource-group 的组件的建议监视配置。

aws application-insights describe-component-configuration-recommendation --resource-group-name my-resource-group --component-name my-component --tier DOT_NET_WORKER

使用适用于 Windows PowerShell 的 AWS 工具描述建议的组件监控配置

当组件是 .NET Worker 应用程序的一部分时,您可以使用适用于 Windows PowerShell 的 AWS 工具,通过使用以下命令来描述在资源组 my-component 上创建的应用程序中名为 my-resource-group 的组件的建议监视配置。

Get-CWAIComponentConfigurationRecommendation -ComponentName my-component -ResourceGroupName my-resource-group -Tier DOT_NET_WORKER

有关组件配置和示例 JSON 文件的更多信息,请参阅组件配置

更新组件的监控配置

使用 AWS CLI 更新组件的监控配置

要使用 AWS CLI 更新在名为 my-resource-group 的资源组上创建的应用程序中名为 my-component 的组件,请使用以下命令。该命令包括以下操作:

  1. 启用组件监控。

  2. 将组件层设置为 .NET Worker

  3. 更新组件的 JSON 配置以从本地文件 configuration.txt 中读取。

aws application-insights update-component-configuration --resource-group-name my-resource-group --component-name my-component --tier DOT_NET_WORKER --monitor --component-configuration "file://configuration.txt"

使用适用于 Windows PowerShell 的 AWS 工具更新组件的监控配置

要使用适用于 Windows PowerShell 的 AWS 工具更新在名为 my-resource-group 的资源组上创建的应用程序中名为 my-component 的组件,请使用以下命令。该命令包括以下操作:

  1. 启用组件监控。

  2. 将组件层设置为 .NET Worker

  3. 更新组件的 JSON 配置以从本地文件 configuration.txt 中读取。

[string]$config = Get-Content -Path configuration.txt Update-CWAIComponentConfiguration -ComponentName my-component -ResourceGroupName my-resource-group -Tier DOT_NET_WORKER -Monitor 1 -ComponentConfiguration $config

有关组件配置和示例 JSON 文件的更多信息,请参阅组件配置

对指定的资源组取消 Application Insights 监控

使用 AWS CLI 对指定的资源组取消 Application Insights 监控

要使用 AWS CLI 对在名为 my-resource-group 的资源组上创建的应用程序取消监控,请使用以下命令。

aws application-insights delete-application --resource-group-name my-resource-group

使用适用于 Windows PowerShell 的 AWS 工具对指定的资源组取消 Application Insights 监控

要使用适用于 Windows PowerShell 的 AWS 工具对在名为 my-resource-group 的资源组上创建的应用程序取消监控,请使用以下命令。

Remove-CWAIApplication -ResourceGroupName my-resource-group

针对 SQL Always On 可用性组配置监控

  1. 使用 SQL HA EC2 实例为资源组创建应用程序。

    aws application-insights create-application ‐-region <REGION> ‐-resource-group-name <RESOURCE_GROUP_NAME>
  2. 通过创建新的应用程序组件,定义表示 SQL HA 集群的 EC2 实例。

    aws application-insights create-component ‐-resource-group-name "<RESOURCE_GROUP_NAME>" ‐-component-name SQL_HA_CLUSTER ‐-resource-list "arn:aws:ec2:<REGION>:<ACCOUNT_ID>:instance/<CLUSTER_INSTANCE_1_ID>" "arn:aws:ec2:<REGION>:<ACCOUNT_ID>:instance/<CLUSTER_INSTANCE_2_ID>
  3. 配置 SQL HA 组件。

    aws application-insights update-component-configuration ‐-resource-group-name "<RESOURCE_GROUP_NAME>" ‐-region <REGION> ‐-component-name "SQL_HA_CLUSTER" ‐-monitor ‐-tier SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP ‐-monitor ‐-component-configuration '{ "instances" : { "alarmMetrics" : [ { "alarmMetricName" : "CPUUtilization", "monitor" : true }, { "alarmMetricName" : "StatusCheckFailed", "monitor" : true }, { "alarmMetricName" : "Processor % Processor Time", "monitor" : true }, { "alarmMetricName" : "Memory % Committed Bytes In Use", "monitor" : true }, { "alarmMetricName" : "Memory Available Mbytes", "monitor" : true }, { "alarmMetricName" : "Paging File % Usage", "monitor" : true }, { "alarmMetricName" : "System Processor Queue Length", "monitor" : true }, { "alarmMetricName" : "Network Interface Bytes Total/sec", "monitor" : true }, { "alarmMetricName" : "PhysicalDisk % Disk Time", "monitor" : true }, { "alarmMetricName" : "SQLServer:Buffer Manager Buffer cache hit ratio", "monitor" : true }, { "alarmMetricName" : "SQLServer:Buffer Manager Page life expectancy", "monitor" : true }, { "alarmMetricName" : "SQLServer:General Statistics Processes blocked", "monitor" : true }, { "alarmMetricName" : "SQLServer:General Statistics User Connections", "monitor" : true }, { "alarmMetricName" : "SQLServer:Locks Number of Deadlocks/sec", "monitor" : true }, { "alarmMetricName" : "SQLServer:SQL Statistics Batch Requests/sec", "monitor" : true }, { "alarmMetricName" : "SQLServer:Database Replica File Bytes Received/sec", "monitor" : true }, { "alarmMetricName" : "SQLServer:Database Replica Log Bytes Received/sec", "monitor" : true }, { "alarmMetricName" : "SQLServer:Database Replica Log remaining for undo", "monitor" : true }, { "alarmMetricName" : "SQLServer:Database Replica Log Send Queue", "monitor" : true }, { "alarmMetricName" : "SQLServer:Database Replica Mirrored Write Transaction/sec", "monitor" : true }, { "alarmMetricName" : "SQLServer:Database Replica Recovery Queue", "monitor" : true }, { "alarmMetricName" : "SQLServer:Database Replica Redo Bytes Remaining", "monitor" : true }, { "alarmMetricName" : "SQLServer:Database Replica Redone Bytes/sec", "monitor" : true }, { "alarmMetricName" : "SQLServer:Database Replica Total Log requiring undo", "monitor" : true }, { "alarmMetricName" : "SQLServer:Database Replica Transaction Delay", "monitor" : true } ], "windowsEvents" : [ { "logGroupName" : "WINDOWS_EVENTS-Application-<RESOURCE_GROUP_NAME>", "eventName" : "Application", "eventLevels" : [ "WARNING", "ERROR", "CRITICAL", "INFORMATION" ], "monitor" : true }, { "logGroupName" : "WINDOWS_EVENTS-System-<RESOURCE_GROUP_NAME>", "eventName" : "System", "eventLevels" : [ "WARNING", "ERROR", "CRITICAL" ], "monitor" : true }, { "logGroupName" : "WINDOWS_EVENTS-Security-<RESOURCE_GROUP_NAME>", "eventName" : "Security", "eventLevels" : [ "WARNING", "ERROR", "CRITICAL" ], "monitor" : true } ], "logs" : [ { "logGroupName" : "SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP-<RESOURCE_GROUP_NAME>", "logPath" : "C:\\Program Files\\Microsoft SQL Server\\MSSQL**.MSSQLSERVER\\MSSQL\\Log\\ERRORLOG", "logType" : "SQL_SERVER", "monitor" : true, "encoding" : "utf-8" } ] } }'
注意

Application Insights 必须获取应用程序事件日志(信息级别)才能检测集群活动(如故障转移)。

为 MySQL RDS 配置监控

  1. 使用 RDS MySQL 数据库实例为资源组创建应用程序。

    aws application-insights create-application ‐-region <REGION> ‐-resource-group-name <RESOURCE_GROUP_NAME>
  2. 默认情况下,启用错误日志。可以使用数据参数组启用慢速查询日志。有关更多信息,请参阅访问 MySQL 慢速查询和常规日志

    • set slow_query_log = 1

    • set log_output = FILE

  3. 将要监控的日志导出到 CloudWatch Logs 中。有关更多信息,请参阅将 MySQL 日志发布到 CloudWatch Logs

  4. 配置 MySQL RDS 组件。

    aws application-insights update-component-configuration ‐-resource-group-name "<RESOURCE_GROUP_NAME>" ‐-region <REGION> ‐-component-name "<DB_COMPONENT_NAME>" ‐-monitor ‐-tier DEFAULT ‐-monitor ‐-component-configuration "{\"alarmMetrics\":[{\"alarmMetricName\":\"CPUUtilization\",\"monitor\":true}],\"logs\":[{\"logType\":\"MYSQL\",\"monitor\":true},{\"logType\": \"MYSQL_SLOW_QUERY\",\"monitor\":false}]}"

为 MySQL EC2 配置监控

  1. 使用 SQL HA EC2 实例为资源组创建应用程序。

    aws application-insights create-application ‐-region <REGION> ‐-resource-group-name <RESOURCE_GROUP_NAME>
  2. 默认情况下,启用错误日志。可以使用数据参数组启用慢速查询日志。有关更多信息,请参阅访问 MySQL 慢速查询和常规日志

    • set slow_query_log = 1

    • set log_output = FILE

  3. 配置 MySQL EC2 组件。

    aws application-insights update-component-configuration ‐-resource-group-name "<RESOURCE_GROUP_NAME>" ‐-region <REGION> ‐-component-name "<DB_COMPONENT_NAME>" ‐-monitor ‐-tier MYSQL ‐-monitor ‐-component-configuration "{\"alarmMetrics\":[{\"alarmMetricName\":\"CPUUtilization\",\"monitor\":true}],\"logs\":[{\"logGroupName\":\"<UNIQUE_LOG_GROUP_NAME>\",\"logPath\":\"C:\\\\ProgramData\\\\MySQL\\\\MySQL Server **\\\\Data\\\\<FILE_NAME>.err\",\"logType\":\"MYSQL\",\"monitor\":true,\"encoding\":\"utf-8\"}]}"

为检测到的问题设置通知和操作

对于添加到CloudWatch Application Insights for .NET and SQL Server 的每个应用程序,将为以下事件发布 CloudWatch 事件:

  • 问题创建。 在适用于 .NET 和 SQL Server 的 CloudWatch Application Insights 检测到新问题时发出。

    • 详细信息类型:“Application Insights Problem Detected (检测到 Application Insights 问题)”

    • 详细信息:

      • problemId:检测到的问题 ID。

      • region:创建问题的 AWS 区域。

      • resourceGroupName:检测到问题的注册应用程序的资源组。

      • status:问题的状态。

      • severity:问题的严重性。

      • problemUrl:问题的控制台 URL。

  • 问题更新。 使用新观察结果更新问题或更新现有观察结果并随后更新问题时发出;更新包括问题解决方案或处理措施。

    • 详细信息类型:“Application Insights Problem Updated (已更新 Application Insights 问题)”

    • 详细信息:

      • problemId:创建的问题 ID。

      • region:创建问题的 AWS 区域。

      • resourceGroupName:检测到问题的注册应用程序的资源组。

      • status:问题的状态。

      • severity:问题的严重性。

      • problemUrl:问题的控制台 URL。

如何接收应用程序生成的问题事件的通知

在 CloudWatch 控制台中,选择左侧导航窗格中的 Events (事件) 下的 Rules (规则)。从 Rules (规则) 页面中,选择 Create rule (创建规则)。从 Service Name (服务名称) 下拉列表中选择 CloudWatch Application Insights,并选择 Event Type (事件类型)。然后,选择 Add target (添加目标),并选择目标和参数,例如 SNS topic (SNS 主题)Lambda function (Lambda 函数)

通过 AWS Systems Manager 执行的操作。CloudWatch Application Insights for .NET and SQL Server 提供与 Systems Manager OpsCenter 的内置集成。如果您选择将此集成用于您的应用程序,则会在 OpsCenter 控制台上为该应用程序检测到的每个问题创建一个 OpsItem。在 OpsCenter 控制台中,您可以查看 CloudWatch Application Insights 检测到的问题的摘要信息,并选择一个 Systems Manager Automation 运行手册来采取补救措施,或者进一步识别导致应用程序中出现资源问题的 Windows 进程。