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 에이전트 설치

다음 두 가지 방법 중 하나를 사용하여 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.    다른 Windows 성능 카운터에 대해 CloudWatch 에이전트 config.json 파일을 구성할 수도 있습니다. 이 예에서는 성능 모니터에서 사용할 수 있는 성능 카운터를 추가하는 데 사용할 수 있는 일반 구문을 보여 줍니다. 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, instance, objectname 또는 InstanceID를 기준으로 정렬합니다. 그러면 지표가 업로드되고 콘솔에서 확인할 수 있습니다.