Amazon EMR 클러스터 인스턴스에서 사용자 지정 지표를 수집하고 CloudWatch에서 모니터링하려면 어떻게 해야 합니까?

2분 분량
0

Amazon EMR 클러스터 인스턴스의 사용자 지정 지표(예: 메모리, CPU, 디스크 공간 사용량)를 구성하고 싶습니다. 그런 다음 Amazon CloudWatch를 사용하여 지표를 모니터링하려고 합니다.

해결 방법

Amazon Elastic Compute Cloud(Amazon EC2)에 CloudWatch 에이전트를 설치하여 Amazon EMR 클러스터에서 지표를 구성하고 수집할 수 있습니다. CloudWatch 에이전트를 설치한 후 Amazon EC2 인스턴스에 대해 게시된 기본 지표 외에도 수집된 지표를 사용할 수 있습니다.

다른 CloudWatch 지표와 마찬가지로 CloudWatch에서 CloudWatch 에이전트를 사용하여 수집한 지표를 저장하고 볼 수 있습니다. CloudWatch 에이전트가 수집하는 지표의 기본 네임스페이스는 CWAgent입니다. 하지만 에이전트를 구성할 때 다른 네임스페이스를 지정할 수 있습니다.

CloudWatch 에이전트를 구성하고 Amazon EMR 클러스터 노드에서 사용자 지정 지표를 게시하려면 다음 단계를 수행합니다.

1.    다음 예시 구성을 사용하여 예시 CloudWatch 에이전트 구성 파일(config.json)을 생성합니다. 에이전트 구성 파일은 사용자 지정 지표를 비롯하여 에이전트가 수집해야 하는 지표 및 로그를 지정하는 JSON 파일입니다. Linux 서버의 지표 수집에 대한 다음 예에서는 CPU 지표 4개, 디스크 지표 2개, 메모리 지표 1개가 수집 중입니다. 에이전트는 수집된 클라이언트에서 이러한 지표를 수신하도록 설정되어 있습니다.

{
  "agent": {
    "metrics_collection_interval": 60,
    "run_as_user": "root"
  },
  "metrics": {
    "aggregation_dimensions": [
      [
        "InstanceId"
      ]
    ],
    "append_dimensions": {
      "ImageId": "${aws:ImageId}",
      "InstanceId": "${aws:InstanceId}",
      "InstanceType": "${aws:InstanceType}"
    },
    "metrics_collected": {
      "collectd": {
        "metrics_aggregation_interval": 60
      },
      "cpu": {
        "measurement": [
          "cpu_usage_idle",
          "cpu_usage_iowait",
          "cpu_usage_user",
          "cpu_usage_system"
        ],
        "metrics_collection_interval": 60,
        "resources": [
          "*"
        ],
        "totalcpu": false
      },
      "disk": {
        "measurement": [
          "used_percent",
          "inodes_free"
        ],
        "metrics_collection_interval": 60,
        "resources": [
          "*"
        ]
      },
      "mem": {
        "measurement": [
          "mem_used_percent"
        ],
        "metrics_collection_interval": 60
      },
      "statsd": {
        "metrics_aggregation_interval": 60,
        "metrics_collection_interval": 10,
        "service_address": ":8125"
      }
    }
  }
}

2.    다음 부트스트랩 스크립트(예: emr-cloudwatchagent-bootstrap.sh)를 Amazon Simple Storage Service(S3) 위치에 복사합니다.

------emr-cloudwatchagent-bootstrap.sh---------
#!/bin/bash

sudo yum install amazon-cloudwatch-agent -y
sudo amazon-linux-extras install collectd -y

aws s3 cp <s3 path for config.json> /home/hadoop/config.json

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

스크립트는 다음을 수행합니다.

  • CloudWatch 에이전트와 수집된 클라이언트를 설치합니다.
  • Amazon S3에서 로컬 경로 /home/hadoop으로 config.json 파일을 복사합니다.
  • config.json 파일을 사용하여 CloudWatch 에이전트를 실행합니다.

3.    Amazon EMR 클러스터에 부트스트랩 작업을 추가합니다.

수집된 지표를 CloudWatch로 가져온 후 이러한 지표를 시계열 그래프로 볼 수 있습니다. 지표가 사용자가 지정한 특정 임계값을 초과할 때 알림을 받도록 경보를 설정할 수도 있습니다. CloudWatch 콘솔에서 수집된 지표를 보려면 에이전트가 수집한 지표의 네임스페이스를 선택합니다. 기본적으로 이 네임스페이스를 CWAgent라고 합니다. 자세한 내용은 CloudWatch 에이전트에서 가져온 수집된 지표 보기를 참조하세요.


AWS 공식
AWS 공식업데이트됨 2년 전