CloudWatch エージェントを使用して Windows サーバー上のパフォーマンスモニターのメトリクスを表示するにはどうすればよいですか?

最終更新日: 2022 年 5 月 5 日

Windows サーバー上で Amazon CloudWatch エージェントを使用して、パフォーマンスモニター用に収集されたメトリクスを取得したいと考えています。これを行うにはどうすればよいですか?

簡単な説明

CloudWatch エージェントを使用して Windows サーバー上のパフォーマンスモニターのメトリクスを取得するには、以下が必要です。

  • パブリックサブネット上の Amazon Elastic Compute Cloud (Amazon EC2) インスタンス (インターネットにアクセス可能) 。または、プライベートサブネット上の EC2 インスタンス (VPC エンドポイントにアクセス可能)。
  • インスタンスの AWS Identity and Access Management (IAM) プロファイルとロール
  • SSM Agent
  • CloudWatch エージェント

この記事の手順に従って、Windows サーバーに CloudWatch エージェントをインストールして設定し、パフォーマンスモニターのメトリクスを表示します。

解決方法

インスタンスを起動する

1.    Windows Server 2019 で EC2 インスタンスを起動します。

2.    EC2 インスタンスが起動したら、リモートデスクトッププロトコル (RDP) を使用してインスタンスにログインします

CloudWatch エージェントをインストールする

次の 2 つの方法のいずれかを使用して CloudWatch エージェントをインストールします。

  • SSM ドキュメント AWS-ConfigureAWSPackage を使用する
  • CloudWatch パッケージを手動でダウンロードする

SSM ドキュメント AWS-ConfigureAWSPackage を使用する

AWS-ConfigureAWS パッケージを使用してエージェントをインストールするには、「エージェント設定を使用した EC2 インスタンスへの 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.    「ウィザードを使用して 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",
          "% Interrupt 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.    CloudWatch エージェントの config.json ファイルを他の Windows パフォーマンスカウンター用に設定することもできます。この例は、パフォーマンスモニターで使用可能なパフォーマンスカウンターを追加するために使用できる一般的な構文を示しています。Windows パフォーマンスモニターにカウンターが表示されていることを確認してください。表示されていないと、エージェントはそのカウンターのデータポイントをプッシュできません。

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

3.    ウィザードによってファイルが生成されたら、ファイルは C:\Program Files\Amazon\AmazonCloudWatchAgent にあります。このファイルの名前を変更し、次の場所にコピーします。C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs

4.    CloudWatch エージェントを起動します。

Once the file has been put in the CloudWatchAgent Configs, Start the cloudWatch Agent Service with
.\amazon-cloudwatch-agent-ctl.ps1 -a fetch-config -m EC2 -c file:$env:USERPROFILE\config.json -s

設定ファイルを手動で作成する

JSON ファイルを手動で作成する方法の詳細については、「CloudWatch エージェント設定ファイルを手動で作成または編集する」を参照してください。

Windows サーバーの設定ファイルのスキーマ定義を表示します。

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

ファイルを作成したら、エージェントをインストールする他のサーバーにコピーします。

CloudWatch でパフォーマンスカウンターのメトリクスを表示する

CloudWatch エージェントを設定して起動したら、CloudWatch コンソールで Windows パフォーマンスカウンターのメトリクスを表示します。

1.    CloudWatch コンソールを開きます。

2.    ナビゲーションペインの [Metrics] (メトリクス) で、[All Metrics] (すべてのメトリクス) を選択します。

3.    [Custom namespaces] (カスタム名前空間) セクションから、[CWAgent] を選択します。

4.ImageID、InstanceID、InstanceType、インスタンス、オブジェクト名、または InstanceID で並べ替えます。メトリクスがアップロードされ、コンソールで表示できます。