본문 바로가기

Public Cloud

Amazon EC2 인스턴스에 CloudWatch Agent를 설치하는 방법

728x90
반응형

Amazon EC2 인스턴스에 CloudWatch Agent를 설치하는 방법

Agent를 사용하면 EC2 인스턴스에서 로그 및 메트릭 데이터를 수집하고 Amazon CloudWatch로 전송할 수 있습니다.

1. EC2 인스턴스에 로그인

EC2 인스턴스에 SSH 또는 RDP를 사용하여 로그인합니다.

2. Agent 다운로드 및 설치

CloudWatch Agent를 EC2 인스턴스에 다운로드 및 설치합니다.

sudo yum install -y amazon-cloudwatch-agent
더보기
wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
sudo rpm -U ./amazon-cloudwatch-agent.rpm

3. Agent 구성 파일 생성

CloudWatch Agent를 구성하기 위해 구성 파일을 생성해야 합니다. 아래 명령어를 사용하여 구성 파일을 생성합니다.

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
  • 구성 옵션 설정: 대화형 인터페이스에서 아래와 같은 구성 옵션을 설정합니다.
    • Are you using EC2 or On-Premises?: EC2를 선택합니다.
    • Do you want to turn on StatsD daemon?: StatsD 데몬을 사용할지 여부를 선택합니다. (선택사항)
    • Do you want to monitor metrics from CollectD?: CollectD 메트릭을 모니터링할지 여부를 선택합니다. (선택사항)
    • Do you want to monitor any log files?: 로그 파일을 모니터링할지 여부를 선택합니다. (선택사항)
    • Do you want to store the configuration file at the default location?: 구성 파일을 기본 위치에 저장할지 여부를 선택합니다. (일반적으로 기본 위치를 선택합니다.)
    • Enter the path to the directory where you want to store the configuration file: 구성 파일을 저장할 디렉토리 경로를 입력합니다. (위에서 기본 위치를 선택한 경우 필요하지 않습니다.)
    • Enter a name for the configuration file: 구성 파일의 이름을 입력합니다.
  • 구성 파일 검토: 구성 옵션을 모두 설정한 후, 대화형 인터페이스는 구성 파일의 내용을 요약하여 보여줄 것입니다. 이 내용을 확인하고 필요한 경우 옵션을 수정합니다.
  • 구성 파일 저장: 구성 옵션을 확인하고 저장합니다.

4. Agent 시작

구성이 완료되면 CloudWatch Agent를 시작합니다.

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json

5. Agent 상태 확인

아래 명령을 사용하여 CloudWatch Agent가 올바르게 실행되었는지 확인할 수 있습니다.

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
systemctl --now enable amazon-cloudwatch-agent
systemctl status amazon-cloudwatch-agent
systemctl restart amazon-cloudwatch-agent

 

이제 CloudWatch Agent가 EC2 인스턴스에서 실행되며 선택한 메트릭 및 로그 데이터를 수집하여 Amazon CloudWatch로 전송할 것입니다. 필요에 따라 추가 구성 및 튜닝을 수행하여 데이터 수집 및 모니터링을 조정할 수 있습니다. CloudWatch Agent의 자세한 설정 및 사용법은 공식 문서를 참조하시기 바랍니다.

Amazon CloudWatch Agent의 설정 파일(amazon-cloudwatch-agent.json)을 작성하는 예시

CPU, 메모리, 디스크 메트릭을 수집하고 nginx와 php-fpm 로그 데이터를 수집하여 CloudWatch에 전송하는 구성

vim amazon-cloudwatch-agent.json
{
    "agent": {
        "run_as_user": "cwagent",
        "metrics_collection_interval": 60
    },
    "metrics": {
        "metrics_collected": {
            "cpu": {
                "measurement": [
                    "cpu_usage_idle",
                    "cpu_usage_iowait",
                    "cpu_usage_user",
                    "cpu_usage_system"
                ],
                "metrics_collection_interval": 60,
                "totalcpu": true
            },
            "disk": {
                "measurement": [
                    "used_percent",
                    "inodes_free"
                ],
                "metrics_collection_interval": 60,
                "resources": [
                    "/"
                ]
            },
            "mem": {
                "measurement": [
                    "mem_used_percent"
                ],
                "metrics_collection_interval": 60
            }
        },
        "append_dimensions": {
            "InstanceId": "${aws:InstanceId}"
        },
        "aggregation_dimensions": [["InstanceId"]],
        "metrics_collection_interval": 60
    },
    "logs": {
        "logs_collected": {
            "files": {
                "collect_list": [
                    {
                        "file_path": "/var/log/nginx/access.log",
                        "log_group_name": "nginx-access",
                        "log_stream_name": "{instance_id}/nginx-access"
                    },
                    {
                        "file_path": "/var/log/nginx/virtual_host_1_access.log",
                        "log_group_name": "virtual-host-1-access",
                        "log_stream_name": "{instance_id}/virtual-host-1-access"
                    },
                    {
                        "file_path": "/var/log/nginx/virtual_host_2_access.log",
                        "log_group_name": "virtual-host-2-access",
                        "log_stream_name": "{instance_id}/virtual-host-2-access"
                    },
                    {
                        "file_path": "/var/log/php-fpm/www.log",
                        "log_group_name": "php-fpm",
                        "log_stream_name": "{instance_id}/php-fpm"
                    }
                ]
            }
        },
        "log_stream_name": "log_stream_name"
    }
}

 

728x90
반응형