CloudWatch로 사용 가능한 디스크 공간을 확보하는 방법은 무엇입니까?


11

CloudWatch로 사용 가능한 디스크 공간 (df)을 확보 할 수 있습니까? 그렇다면 사용 가능한 디스크 공간을 나타내는 메트릭은 무엇입니까?

답변:


7

최신 정보

한편 AWS는 Linux실행하는 Amazon EC2 인스턴스에서 메모리 및 디스크 공간 사용량을 모니터링하기위한 자체 샘플 스크립트를 제공합니다. 새로운 Amazon CloudWatch 모니터링 스크립트를 참조하십시오 .

인스턴스에서 이러한 스크립트를 실행하고 메모리 및 디스크 공간 사용량 지표를 Amazon CloudWatch에보고하도록 구성 할 수 있습니다. 지표가 CloudWatch에 제출되면 CloudWatch 콘솔 또는 CloudWatch API 를 통해 그래프를보고 통계를 계산하고 경보를 설정할 수 있습니다 .

[...]

설치, 설정 및 구성을 포함하여 스크립트를 사용하는 방법에 대한 자세한 내용은 Amazon CloudWatch Developer Guide의 " Linux 용 Amazon CloudWatch 모니터링 스크립트 "를 참조하십시오.

그러나 많은 인기있는 타사 모니터링 솔루션은 이미 메모리 및 디스크 공간 사용량 모니터링을 위해 각각의 샘플 또는 완전한 솔루션을 제공하므로 일반적으로 휠을 재발 명 할 필요가 없습니다. AWS가 제공 한 스크립트는 상당히 훌륭하고 광범위합니다. 즉, 대부분의 사용자 정의 스크립트가 떠 다니는 것보다 더 철저한 사용 사례를 다루고 있습니다.


초기 답변

아니요, 아직 불가능합니다. 메모리 사용 에 대한 관련 질문 cloudwatch에 대한 AWS 직원의 답변을 참조하십시오 .

[...] 현재 인스턴스를 모니터링하기 위해 AMI에 어떤 것도 배포 할 필요가 없습니다. 메모리 사용률 및 디스크 공간과 같은 지표는 인스턴스에서 실행중인 OS를 조사해야하므로 이러한 중요한 지표가없는 이유입니다.

우리는 OS 및 응용 프로그램에 대한 더 많은 통찰력을 제공하는 방법을 모색하고 있으며 계획을 세울 때 더 자세한 정보를 제공 할 것입니다.

필요한 크로스 플랫폼 에이전트 기능을 전용 모니터링 솔루션을 이미 제공하는 다른 공급 업체에서 쉽게 사용할 수 있기 때문에이 기능이 곧 나타날 것으로 의심됩니다. 물론 AWS에 직접 내장 된 지원.


"초기 답변에 명시된 내용은 변경되지 않지만 ..."-원래 답변에 따르면 AWS는 디스크 사용량을보고 할 수 없지만 이제 AWS 스크립트는 디스크 사용량을보고합니다. 따라서 OP 질문에 대한 답변이 변경되었습니다.
steampowered

3

다음은 인스턴스에 연결된 볼륨을 검색하고 각 볼륨의 사용량을보고하는 동일한 스크립트의 더 나은 버전입니다.

/ dev / sd에 대한 / dev / xvd의 대체에 주목

또한 이러한 작업을 수행하려면 인증서와 함께 ec2-api 도구 및 Cloudwatch 도구가 설치되어 있어야합니다.

#!/bin/bash

export JAVA_HOME=
export AWS_CREDENTIAL_FILE=
export EC2_CERT=
export EC2_PRIVATE_KEY=
export EC2_HOME=
export AWS_CLOUDWATCH_HOME=

INSTANCE_ID=$(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id)
VOLUME_LIST=$($EC2_HOME/bin/ec2-describe-volumes | grep ${INSTANCE_ID} | awk '{ print $2 ";" $4}')

for VOLUME_LINE in $(echo $VOLUME_LIST); do
        VOLUME_NAME=${VOLUME_LINE%;*}
        DEVICE_NAME=/dev/xvd${VOLUME_LINE#*;/dev/sd}
        USAGE=$(df $DEVICE_NAME | perl -ne 'print "$1" if /(\d+)\%/')
        $AWS_CLOUDWATCH_HOME/bin/mon-put-data -v $USAGE -d "Volume=$VOLUME_NAME" -m UsedStoragePercentage -u Percent -n "NAMESPACE" --show-request
done

2

커스텀 Cloudwatch 지표를 사용하여 bash 스크립트를 작성했습니다.

http://aws.typepad.com/aws/2011/05/amazon-cloudwatch-user-defined-metrics.html

XXXX를 자신의 가치로 대체

#!/bin/sh

export JAVA_HOME=/usr/lib/jvm/java-6-sun
export AWS_CREDENTIAL_FILE=XXXX 
export AWS_CLOUDWATCH_HOME=XXXX

INSTANCE_ID=$(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id)

$AWS_CLOUDWATCH_HOME/bin/mon-put-data -v $(df / | perl -ne 'print "$1" if /(\d+)\%/') -d "InstanceId=$INSTANCE_ID,Volume=root" -u Percent -m UsedStoragePercentage -n "XXXX" --show-request

이것을 크론 작업에 넣으면 알람을 켤 수있는 메트릭이 생깁니다. 필자의 요구에 맞는 볼륨 자체를 모니터링하는 대신 백분율 및 인스턴스 별 마운트 포인트를 사용하기로 결정했습니다. 인스턴스를 다시 시작하는 것보다 볼륨을 조정하고 볼륨을 바꾸는 경향이 있습니다. 귀하의 마일리지가 다를 수 있습니다.


1

Amazon의 샘플 스크립트 또는 Perl 기반 명령 줄 도구를 사용하는 다양한 타사 스크립트에 만족하지 않아 Python에서 자체 스크립트 인 aws-cloudwatch-linux-metrics를 작성했습니다 .

단일 파일, 종속성이 없으며 모든 파이썬 인터프리터에서 실행됩니다.

/proc파일 시스템 에서 직접 데이터를 읽고 외부에서 관찰 할 수없는 다른 시스템 메트릭과 함께 디스크 공간 활용도 를 보고 합니다.

  • CPU로드 평균
  • 네트워크 연결 (TCP 및 UDP)
  • 디스크 공간 활용
  • 메모리 활용

인스턴스 ID와 이미지 ID 모두와 관련하여 이러한 지표를보고합니다.


안녕, 당신의 GitHub의 프로젝트는 사라입니다
로코 CTZ

0

질문이 있은 후, AWS는 디스크 사용량을보고하는 옵션을 스크립트에 제공했습니다.

crontab에서이 스크립트를 실행하여 사용 가능한 디스크 공간을 CloudWatch에보고 할 수 있습니다. 디스크 경로를 포함시키는 것을 잊지 마십시오.

*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/ --from-cron

문서는 전체 옵션 목록과 예제를 제공합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.