CloudWatch 맞춤 측정항목으로 다양한 모니터링
4773 단어 맞춤 측정항목CloudWatchAWS
EC2 초기 설정
에서 EC2의 초기 설정까지 할 수 있었으므로, 실제로 운용해 갈 때에 필요한 것 같은 커스텀 메트릭스를 자작합니다.
맞춤 메트릭 도입 에서 메모리 사용률, 디스크 사용률을 설정했습니다.
이번은 +α 쉘을 작성해 여러가지 감시할 수 있는 상태로 하고 싶습니다.
기본 정보
기본적으로 "/var/tmp/aws-mon/"에 인스턴스 정보가 들어 있습니다.
※AMI로부터 작성한 인스턴스는 이 디렉토리가 클리어 되어 있지 않은 일도 있으므로, EC2 기동하면 삭제해 두는 편이 좋습니다.
/aws-scripts-mon/mon-put-instance-data.pl을 실행하면 만들어지는 것 같습니다.
/instance-id :インスタンスID
/placement/availability-zone :アベイラビリティゾーン
/as-group-name :オートスケーリンググループ名
템플릿 스크립트
/opt/aws/bin/mon-put-data를 실행하여 CloudWatch에 등록할 수 있습니다.
#!/bin/sh
export JAVA_HOME=/usr/lib/jvm/jre
export AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon
export EC2_REGION=ap-northeast-1
export AWS_CREDENTIAL_FILE=/home/ec2-user/cloudwatch/credential
InstanceId=`cat /var/tmp/aws-mon/instance-id`
/opt/aws/bin/mon-put-data --metric-name "[メトリクス名]" --namespace "CustomMetrix" --dimensions "InstanceId=${InstanceId}" --value [登録するデータ]
각 옵션은 아래 그림과 같이 CloudWatch에 반영됩니다.
"dimensions"에 관해서는, ","단락으로 복수 설정하는 것도 가능합니다.
예) --dimensions "InstanceID=\${InstanceID}, HostName=\${hostname}"
/instance-id :インスタンスID
/placement/availability-zone :アベイラビリティゾーン
/as-group-name :オートスケーリンググループ名
#!/bin/sh
export JAVA_HOME=/usr/lib/jvm/jre
export AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon
export EC2_REGION=ap-northeast-1
export AWS_CREDENTIAL_FILE=/home/ec2-user/cloudwatch/credential
InstanceId=`cat /var/tmp/aws-mon/instance-id`
/opt/aws/bin/mon-put-data --metric-name "[メトリクス名]" --namespace "CustomMetrix" --dimensions "InstanceId=${InstanceId}" --value [登録するデータ]
맞춤 측정항목 만들기
아래 스크립트를 나열하고 cron으로 설정하면 CloudWatch에서 모니터링할 수 있습니다.
필수 모듈 설치
yum install aws-apitools-mon
예
실제로 작성해 보았습니다.
예제는 LoadAverage와 httpd, crond 프로세스를 확인하는 스크립트입니다.
이 디렉토리에 작성
$ pwd
/home/ec2-user/cloudwatch
$ ll
total 4
drwxrwxr-x 2 ec2-user ec2-user 185 Mar 21 00:08 aws-scripts-mon
-rw------- 1 ec2-user ec2-user 91 Mar 21 00:32 credential
스크립팅
· CustomMetrix.sh
#!/bin/sh
CUR_DIR=/home/ec2-user/cloudwatch
export JAVA_HOME=/usr/lib/jvm/jre
export AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon
export EC2_REGION=ap-northeast-1
export AWS_CREDENTIAL_FILE=${CUR_DIR}/credential
InstanceId=`cat /var/tmp/aws-mon/instance-id`
# 設定ファイル
PROCESSCONFIG=${CUR_DIR}/process-conf.txt
# Process Check(設定したファイルから読み込む)
cat ${PROCESSCONFIG} | sed '/^$/d' | grep -v '^#.*' | while read PROCESS
do
COUNT=`ps -aux | grep ${PROCESS} | grep -v grep | wc -l`
echo ${PROCESS}:${COUNT}
/opt/aws/bin/mon-put-data --metric-name ${PROCESS} --namespace "CustomMetrix" --dimensions "InstanceId=${InstanceId}" --value ${COUNT}
done
# LoadAverage(1分間の測定値を取得)
/opt/aws/bin/mon-put-data --metric-name "LoadAverage" --namespace "CustomMetrix" --dimensions "InstanceId=${InstanceId}" --value `cat /proc/loadavg | awk '{print $1;}'`
실행할 수 있도록 권한 조정
$ chmod u+x CustomMetrix.sh
설정 파일 준비
· process-conf.txt에 체크하고 싶은 프로세스를 기재합니다.
$ cat process-conf.txt
httpd
crond
실행
실행하여 CloudWatch에 등록되어 있으면 OK입니다.
$ ./CustomMetrix.sh
httpd:6
crond:1
CustomMetrix가 추가되면 OK입니다.
이런 식으로 등록됩니다.
cron 설정
이제 매분의 상황을 CloudWatch에서 모니터링할 수 있습니다.
적절하게 경고를 설정하고 모니터링을 수행하십시오.
$ crontab -e
crontab: installing new crontab
$ crontab -l
*/1 * * * * /home/ec2-user/cloudwatch/CustomMetrix.sh > /dev/null 2>&1
이상으로 맞춤 측정항목을 직접 만들 수 있었습니다.
기타 감시하고 싶은 것이 있으면, 적절히 스크립트를 작성하면 감시 가능합니다.
Reference
이 문제에 관하여(CloudWatch 맞춤 측정항목으로 다양한 모니터링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hf7777hi/items/cd1f146895d487f3b60a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
yum install aws-apitools-mon
$ pwd
/home/ec2-user/cloudwatch
$ ll
total 4
drwxrwxr-x 2 ec2-user ec2-user 185 Mar 21 00:08 aws-scripts-mon
-rw------- 1 ec2-user ec2-user 91 Mar 21 00:32 credential
#!/bin/sh
CUR_DIR=/home/ec2-user/cloudwatch
export JAVA_HOME=/usr/lib/jvm/jre
export AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon
export EC2_REGION=ap-northeast-1
export AWS_CREDENTIAL_FILE=${CUR_DIR}/credential
InstanceId=`cat /var/tmp/aws-mon/instance-id`
# 設定ファイル
PROCESSCONFIG=${CUR_DIR}/process-conf.txt
# Process Check(設定したファイルから読み込む)
cat ${PROCESSCONFIG} | sed '/^$/d' | grep -v '^#.*' | while read PROCESS
do
COUNT=`ps -aux | grep ${PROCESS} | grep -v grep | wc -l`
echo ${PROCESS}:${COUNT}
/opt/aws/bin/mon-put-data --metric-name ${PROCESS} --namespace "CustomMetrix" --dimensions "InstanceId=${InstanceId}" --value ${COUNT}
done
# LoadAverage(1分間の測定値を取得)
/opt/aws/bin/mon-put-data --metric-name "LoadAverage" --namespace "CustomMetrix" --dimensions "InstanceId=${InstanceId}" --value `cat /proc/loadavg | awk '{print $1;}'`
$ chmod u+x CustomMetrix.sh
$ cat process-conf.txt
httpd
crond
$ ./CustomMetrix.sh
httpd:6
crond:1
$ crontab -e
crontab: installing new crontab
$ crontab -l
*/1 * * * * /home/ec2-user/cloudwatch/CustomMetrix.sh > /dev/null 2>&1
Reference
이 문제에 관하여(CloudWatch 맞춤 측정항목으로 다양한 모니터링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hf7777hi/items/cd1f146895d487f3b60a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)