2015년 1월 15일 목요일

AWS CLI를 활용하여 간단히 CloudFront Metric 데이터를 수집

AWS에서 제공하는 mon-get-stats를 통해 데이터를 수집할수 있는데
간혹 Zabbix 또는 Nagios에서 커스터마이징해서 활용할 CloudWatch 체크 스크립트가
필요할때 아래 샘플을 변형하여 사용하실수 있습니다.
간단히 코맨트 해놓을께요.


대상이 ELB일 경우 사용 예
# ./get_cloudwatch.sh [ProfileName] RequestCount 1 60 ap-northeast-1 AWS/ELB Sum LoadBalancerName [ELBName]

대상이 EC2일 경우 사용 예
# ./get_cloudwatch.sh [ProfileName] CPUUtilization 10 300 ap-northeast-1 AWS/EC2 Maximum InstanceId [InstanceName]


#!/bin/bash
export HOME=[PROFILE_HOME_PATH]

config=$1  #프로파일네임
metric=$2  #CloudWatch 매트릭네임
minute=$3  #과거로부터 현재까지 데이터를 수집할 시간
period=$4  #수집 주기
region=$5  #Region
namespace=$6  #CloudWatch 네임스페이스
statistics=  $7  #수집할 Statistics
dimensionkey=$8  #Dimension Key
dimensionvalue=$9  #Dimension Value

result=$(
aws cloudwatch get-metric-statistics --profile ${config} \
--metric-name ${metric} \
--namespace ${namespace} \
--region ${region} \
--start-time `date -u +%Y-%m-%dT%H:%M:%SZ -d "${minute} minute ago"` \
--end-time `date -u +%Y-%m-%dT%H:%M:%SZ` \
--period ${period} \
--statistics ${statistics} \
--dimension "Name=${dimensionkey}, Value=${dimensionvalue}" \
--output text \
| sort -k3 | tail -1 | cut -f 2
)

printf '%.5f' ${result}

exit 1


Return Value를 Float로 해놓았으니 Zabbix 등에서 수집데이터 유형도 Float로 하셔야 합니다.