AWS EC2에 CloudWatch Agent 설정

AWS EC2에 CloudWatch Agent 설정

CloudXper에서 AWS CloudWatch Agent 설정을 위한 가이드 내용을 기술합니다.

해당 설정을 통해 CloudXper에서 Memory Utilization에 대해 확인이 가능합니다.

AWS CloudWatch Agent 구성 가이드

CloudXper가 Memory 지표를 수집하는 방식

  • AWS는 기본 지표로 Memory 관련 지표를 제공하지 않습니다

  • CloudWatch를 EC2에 설치하여야 Memory 지표를 확인할 수 있습니다.

  • CloudXper가 Memory 지표를 받아올 때는 InstanceId 기준(Dimension = InstanceId)으로만 받아올 수 있습니다.

  • 수집하는 지표

    • Linux : “mem_used_percent”

    • Window : “Memory % Committed Bytes In Use”

설정 가이드

  • CloudWatch Agent Config 설정 필요

  1. Config Default 파일 수정 (경로는 OS마다 다르므로 확인 필요)
    /opt/aws/amazon-cloudwatch-agent/amazon-cloudwatch-agent.d/default 파일 수정(sudo 권한 필요)

    1. Linux

      1. InstanceId, ImageId, InstanceType, AutoscalingGroupName의 조합으로 데이터를 볼 필요가 있는 경우 아래와 같이 수정

        { "agent": { "run_as_user": "cwagent" }, "metrics": { "metrics_collected": { "mem": { "measurement": [ "mem_used_percent" ] }, "disk": { "measurement": [ "used_percent" ], "resources": [ "*" ] } }, "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}", "AutoScalingGroupName": "${aws:AutoScalingGroupName}" }, "aggregation_dimensions": [ [ "InstanceId" ], [ "InstanceId", "ImageId", "InstanceType", "AutoScalingGroupName" ] ] } }

         

      2. CloudXper에서만 데이터를 보면 되는 경우 아래와 같이 수정

        {     "agent": {         "run_as_user": "cwagent"     },     "metrics": {         "metrics_collected": {             "mem": {                 "measurement": [                     "mem_used_percent"                 ]             },             "disk": {                 "measurement": [                     "used_percent"                 ],                 "resources": [                     "*"                 ]             }         },         "append_dimensions": {             "InstanceId": "${aws:InstanceId}"         }     } }

         

    2. Window

      1. To-BE Write

  2. CloudWatch agent 중지

    1. sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop

  3. CloudWatch agent 시작

    1. sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a start

  4. CloudWatch agent 상태 조회

    1. sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status

    2. 아래와같이 뜨면 정상

    {     "status": "running",     "starttime": "시작시간",     "configstatus": "configured",     "cwoc_status": "stopped",     "cwoc_starttime": "",     "cwoc_configstatus": "not configured",     "version": "1.247347.3b250378" }

     

  5. 실제 수집 확인

    1. CWAgent Namespace에 존재하면 정상

      image-20250203-020406.png
    2. InstanceId로만 조회되는 부분이 보이면 정상

      image-20250203-020448.png
    3. Memory Data가 보이면 정상

      image-20250203-020801.png