[AWS] CloudWatch Agent 설치하기(수동)

2020. 4. 3. 08:26AWS/AWS_Service

반응형

안녕하세요, 달콤한달팽이입니다.🐌🫡

 

오늘은 EC2 내부에 CloudWatch Agent를 설치하는 방법 중,

커스터마이징이 가능한 수동 설치 방식을 실습해보겠습니다!


CloudWatch Agent란?

CloudWatch Agent란, AWS 리소스와 사용자가 실행하는 애플리케이션을 AWS CloudWatch에서 실시간으로 지표, 데이터를 수집할 수 있게 해주는 것을 의미합니다.

 

즉, CloudWatch를 통해 기존에 확인이 불가한 리소스 사용량(ex. Memory Utilization, Disk Space Utilization etc..) 또는 애플리케이션 단의 로그 확인이 가능합니다.


1) IAM Role 생성

CloudWatch Agent의 특성상, EC2의 정보(ex. 리소스 사용량 등..)를 수집할 수 있도록 적절한 권한 부여가 필요합니다.

 

때문에 EC2와 연결할 IAM Role에 CloudWatchAgentServerPolicy이라는 IAM Policy를 연결하는 작업이 우선적으로 선행되어야 합니다.

 

이제 해당 정책을 EC2에 연결한 후, CloudWatch Agent를 본격적으로 설치해보도록 하겠습니다.

 

2) CloudWatch Agent 설치

AWS에서 제공하는 EC2 중 대부분의 OS는 CloudWatch Agent가 설치되어 있지 않습니다. 

때문에 AWS의 S3에서 Agent RPM을 우선적으로 다운로드 받아야합니다.

(다만, OS별로 RPM을 다운받는 링크가 다르므로 여기를 참고하도록 합시다!)

 

wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

wget 명령어를 통해 Agetn RPM을 다운로드 받습니다.

 

이후 다운로드 받은 rpm을 설치한 후, 설치가 완료되었으므로 rpm 파일을 삭제합니다.

 

rpm -U amazon-cloudwatch-agent.rpm

rpm을 설치합니다.

 

rm -f amazon-cloudwatch-agent.rpm

(선택사항) rpm을 삭제합니다.

 

CloudWatch Agent를 실행할 때, 지정 경로의 config 파일을 참조하여 실행함으로써 사용자가 원하는대로 커스터마이징이 가능합니다.

 

cd /opt/aws/amazon-cloudwatch-agent/bin/

앞으로 실행될 CloudWatch Agent는 해당 경로의 config.json 파일을 참조하여 생성됩니다.

(보다 세밀한 커스터 마이징을 원한다면 여기를 참고해주세요!)

{
  "agent": {
    "metrics_collection_interval": 60,
    "run_as_user": "root"
  },
  "metrics": {
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "disk": {
        "measurement": [
          {
            "name": "disk_used_percent",
            "rename": "DiskSpaceUtilization",
            "unit": "Percent"
          }
        ],
        "metrics_collection_interval": 60,
        "resources": [
          "*"
        ]
      },
      "mem": {
        "measurement": [
          {
            "name": "mem_used_percent",
            "rename": "MemoryUtilization",
            "unit": "Percent"
          }
        ],
        "metrics_collection_interval": 60
      }
    },
    "namespace": "Custom Metrics"
  },
  "logs": {
    "logs_collected": {
      "files": {
        "collect_list": [
          {
            "file_path": "/var/log/httpd/access_log",
            "log_group_name": "amazon-cloudwatch-agent.log",
            "log_stream_name": "{instance_id}",
            "timezone": "Local"
          }
        ]
      }
    }
  }
}

 

chmod 755 config.json

config의 권한을 수정해주어, 실행할 수 있도록 합니다.

 

 

amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:config.json -s

앞서 생성한 config.json을 참조하여 CloudWatch Agent를 수행합니다.

 

amazon-cloudwatch-agent-ctl -a status -m ec2

CloudWatch Agent가 정상적으로 수행되는지 확인합니다.

 

3) 생성 확인

CloudWatch의 지표 탭에 Custom Metrics라는 지표가 새로 생겼으며,

새로운 지표에서는 EC2의 Memory Utilization, Disk Space Utilization 등이 확인 가능합니다.

 

또한, 로그 그룹 탭에 새로운 로그(amazon-cloudwatch-agent.log)가 생성되어 있습니다.

 

해당 로그 그룹에는 애플리케이션의 특정 경로에 쌓이는 로그를 확인할 수 있습니다.

 


이제 EC2에서 생성되는 로그를 서버 내부에 직접 들어가보지 않고, CloudWatch를 통해 확인할 수 있게 되었습니다.

 

 

지금까지 CloudWatch Agent를 수동으로 설치하는 방법을 읽어주셔서 감사합니다 🙂

반응형

'AWS > AWS_Service' 카테고리의 다른 글

[AWS] EIP 사용하기  (0) 2020.04.07
[AWS] CloudWatch Agent 설치하기(자동)  (0) 2020.04.06
[AWS] ELB(Elastic Load Balancer) - ALB  (0) 2020.03.19
[AWS] AMI 등록하고 사용하기  (0) 2020.03.18
[AWS] S3 사용하기  (0) 2020.03.16