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

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

使用命令行设置、配置和管理要监控的应用程序

本节提供了使用 AWS CLI 和适用于 Windows 的 AWS 工具设置、配置和管理应用程序以进行监控的步骤PowerShell。

添加和管理应用程序

您可以使用命令行添加、管理和配置 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 的 AWS 工具添加应用程序 PowerShell

要使用适用于 Windows PowerShell 的 AWS 工具为名为 且my-resource-groupOpsCenter启用了 的资源组添加应用程序,以将创建的 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 的 AWS 工具描述应用程序 PowerShell

要使用适用于 Windows 的 AWS 工具PowerShell描述在名为 的资源组上创建的应用程序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 的 AWS 工具列出应用程序中的组件 PowerShell

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

Get-CWAIComponentList -ResourceGroupName my-resource-group

描述组件

使用 AWS CLI 描述组件

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

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

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

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

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

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

我们建议将类似的资源(如 .NET Web 服务器实例)分组到自定义组件中,以轻松添加资源以及更好地进行监控和提供相应的信息。目前,CloudWatch Application Insights 支持 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 的 AWS 工具将资源分组到自定义组件中 PowerShell

要使用适用于 Windows 的 AWS 工具PowerShell将三个实例arn:aws:ec2:us-east-1:123456789012:instance/i-11111(、 arn: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-component 上创建的应用程序中名为 my-resource-group 的自定义组件取消分组,请使用以下命令。

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

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

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

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

更新应用程序

使用 AWS CLI 更新应用程序

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

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 的 AWS 工具更新应用程序 PowerShell

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

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

更新自定义组件

使用 AWS CLI 更新自定义组件

您可以使用 AWS CLI,通过使用以下命令,使用新的组件名称 my-component 和更新的实例组来更新名为 my-new-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 的 AWS 工具更新自定义组件 PowerShell

您可以使用适用于 Windows 的 AWS 工具,通过以下命令PowerShell,使用新的组件名称 my-component和更新的实例组my-new-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 的 AWS 工具列出应用程序的问题 PowerShell

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

$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 的 AWS 工具描述应用程序问题 PowerShell

要使用适用于 Windows 的 AWS PowerShell 工具描述问题 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 的 AWS 工具描述与问题关联的异常或错误 PowerShell

要使用适用于 Windows 的 AWS 工具PowerShell描述与问题 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 的 AWS 工具描述应用程序的异常或错误 PowerShell

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

Get-CWAIObservation -ObservationId o-1234567890

描述组件的监控配置

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

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

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

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

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

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 的 AWS 工具描述建议的组件监控配置 PowerShell

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

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

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

更新组件的监控配置

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

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

  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 的 AWS 工具更新组件的监控配置 PowerShell

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

  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 的 AWS Application Insights 工具删除指定的资源组 PowerShell

要使用适用于 Windows 的 AWS 工具PowerShell从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 '{ "subComponents" : [ { "subComponentType" : "AWS::EC2::Instance", "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" } ] }, { "subComponentType" : "AWS::EC2::Volume", "alarmMetrics" : [ { "alarmMetricName" : "VolumeReadBytes", "monitor" : true }, { "alarmMetricName" : "VolumeWriteBytes", "monitor" : true }, { "alarmMetricName" : "VolumeReadOps", "monitor" : true }, { "alarmMetricName" : "VolumeWriteOps", "monitor" : true }, { "alarmMetricName" : "VolumeQueueLength", "monitor" : true }, { "alarmMetricName" : "VolumeThroughputPercentage", "monitor" : true }, { "alarmMetricName" : "BurstBalance", "monitor" : true } ] } ] }'
注意

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 日志。有关更多信息,请参阅将日志MySQL发布到 CloudWatch 日志

  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\"}]}"

为 PostgreSQL RDS 配置监控

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

    aws application-insights create-application ‐-region <REGION> ‐-resource-group-name <RESOURCE_GROUP_NAME>
  2. 默认情况下PostgreSQL,不启用将CloudWatch日志发布到 的功能。要启用监控,请打开 RDS 控制台,然后选择要监控的数据库。选择右上角的 Modify (修改),然后选中标有 PostgreSQL log (日志) 的复选框。选择 Continue (继续) 以保存此设置。

  3. 您的PostgreSQL日志将导出到 CloudWatch。

  4. 配置 PostgreSQL RDS 组件。

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