如何在 Windows Server 上使用 CloudWatch 代理来查看性能监视器的指标?

3 分钟阅读
0

我想在 Windows Server 上使用 Amazon CloudWatch 代理来获取为性能监视器收集的指标。

解决方法

要在 Windows Server 上安装和配置 CloudWatch 代理并查看 Windows 性能监视器的指标,请完成以下步骤。

先决条件:

  • 公有子网上可以访问互联网的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。或者,私有子网上可以访问 Amazon Virtual Private Cloud (Amazon VPC) 端点的 EC2 实例。
  • 实例的 AWS Identity and Access Management (IAM) 配置文件和角色。
  • AWS Systems Manager Agent (SSM Agent)。
  • CloudWatch 代理。

启动实例

完成以下步骤:

  1. 启动实例
  2. 使用远程桌面协议 (RDP) 连接到您的实例
    **注意:**CloudWatch 代理支持 Windows Server 2016、2019 和 64 位版本的 Windows Server 2022

安装 CloudWatch 代理

要安装 CloudWatch 代理,请自动或手动下载该代理。

自动下载 CloudWatch 代理

要使用 AWS-ConfigureAWS 软件包安装代理,请参阅使用代理配置在 EC2 实例上安装 CloudWatch 代理

手动下载 CloudWatch 代理

要手动下载 CloudWatch 代理,请运行下列命令:

Invoke-WebRequest -Uri  
 https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi  
 -OutFile $env:USERPROFILE\Downloads\amazon-cloudwatch-agent.msi   
-UseBasicParsing  
Invoke-Item $env:USERPROFILE\Downloads\amazon-cloudwatch-agent.msi

创建配置文件

下载 .msi 文件后,使用向导来创建 JSON 配置文件。或者,您可以手动创建配置文件。

使用向导来创建 CloudWatch 代理配置文件

  1. 使用 amazon-cloudwatch-agent-config-wizard 创建 CloudWatch 代理配置文件
    示例文件:

    {  
       "logs": {
        "logs_collected": {
          "files": {
            "collect_list": [
              {
                "file_path": "C:\\Users\\Administrator\\Desktop\\CWMetricsLogs",
                "log_group_name": "CWMetricsLogs",
                "log_stream_name": "{instance_id}",
                "retention_in_days": -1
              }
            ]
          },
          "windows_events": {
            "collect_list": [
              {
                "event_format": "xml",
                "event_levels": [
                  "VERBOSE",
                  "INFORMATION",
                  "WARNING",
                  "ERROR",
                  "CRITICAL"
                ],
                "event_name": "CloudWatchAgent",
                "log_group_name": "CloudWatchAgent",
                "log_stream_name": "{instance_id}",
                "retention_in_days": -1
              }
            ]
          }
        }
      },
      "metrics": {
        "aggregation_dimensions": [
          [
            "InstanceId"
          ]
        ],
        "append_dimensions": {
          "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
          "ImageId": "${aws:ImageId}",
          "InstanceId": "${aws:InstanceId}",
          "InstanceType": "${aws:InstanceType}"
        },
        "metrics_collected": {
          "LogicalDisk": {
            "measurement": [
              "% Free Space"
            ],
            "metrics_collection_interval": 30,
            "resources": [
              "*"
            ]
          },
          "Memory": {
            "measurement": [
              "% Committed Bytes In Use"
            ],
            "metrics_collection_interval": 30
          },
          "Paging File": {
            "measurement": [
              "% Usage"
            ],
            "metrics_collection_interval": 30,
            "resources": [
              "*"
            ]
          },
          "PhysicalDisk": {
            "measurement": [
              "% Disk Time",
              "Disk Write Bytes/sec",
              "Disk Read Bytes/sec",
              "Disk Writes/sec",
              "Disk Reads/sec"
            ],
            "metrics_collection_interval": 30,
            "resources": [
              "*"
            ]
          },
          "Processor": {
            "measurement": [
              "% User Time",
              "% Idle Time",
              "% Interr\upt Time"
            ],
            "metrics_collection_interval": 30,
            "resources": [
              "*"
            ]
          },
          "TCPv4": {
            "measurement": [
              "Connections Established"
            ],
            "metrics_collection_interval": 30
          },
          "TCPv6": {
            "measurement": [
              "Connections Established"
            ],
            "metrics_collection_interval": 30
          },
          "statsd": {
            "metrics_aggregation_interval": 60,
            "metrics_collection_interval": 30,
            "service_address": ":8125"
          }
        }
      }
    }
  2. (可选)要添加性能监视器中可用的其他性能计数器,请运行以下命令:

    "PerformanceCounter-Family(processor, logical disk, memory etc.)": {  
      "measurement": [
          "Counter-name ("%Usage, "% free space" etc.)"
        ],
      "metrics_collection_interval": 30,
      "resources": [
        "Counter Property ( "_total", "C:/" etc.)
      ]
    },

    **注意:**在前面的命令中,将示例值替换为您的值。此外,请确保计数器在 Windows 性能监视器中可见,以便代理可以推送计数器的数据点。

  3. C:\Program Files\Amazon\AmazonCloudWatchAgent 中找到该文件。

  4. 要启动 CloudWatch 代理,请运行以下 Windows PowerShell 命令:

    "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json"

手动创建配置文件

有关如何手动创建 JSON 文件的信息,请参阅手动创建或编辑 CloudWatch 代理配置文件

Windows Server 配置文件的架构定义示例:

installation-directory/amazon-cloudwatch-agent-schema.json

创建文件后,将该文件复制到要安装代理的其他 Windows Server 上。

在 CloudWatch 中查看性能计数器指标

完成以下步骤:

  1. 打开 CloudWatch 控制台
  2. 在导航窗格中的 Metrics(指标)下,选择 All Metrics(所有指标)。
  3. Custom namespaces(自定义命名空间)部分中,选择 CWAgent
  4. 按 ImageID、InstanceID、InstanceType、实例、对象名称或 InstanceID 排序。

相关信息

使用 CloudWatch 代理收集指标、日志和跟踪信息

AWS 官方
AWS 官方已更新 10 个月前