EC2에 모니터링을 할수있다.
작업 > 모니터링 > 세부모니터링관리 활성화
프리티어 확인하자.
CloudWatch> 지표 > 모든지표
경보만들기
경보> 모든경보 > 경보생성
알림을 받을 방식을 선택하는건데 없으면 새 주제 생성하여 메일을 등록하고 생성하면
메일주소를 등록하면 AWS SNS에 주제가 등록되며
내 이메일로 알림이 도착하여 구독해주면 된다
저장하고 시간이 지나면 작동된다.
평상시 경보상태를 보면 정상으로 나타난다
조건이 만족하면
경보상태가 되며 기록을 확인하면 메일을 보냇다고 한다
메일을 확인하면 AWS에서 메일온걸 확인할수 있다.
알림뿐만 아니라 설정에서 용량 증설도 가능하다.
대시보드는 각종 경보나 지표를 등록하여 한눈에 보기편하게 할수 있다.
대시보드 생성시 각종 정보를 추가할수도있고
각 정보에 들어가서 추가할수도 있다.
AWS에서 지원하지 않는 지표를 수집하여 등록할수있다.
ec2 지원지표에는 메모리가 없다
그래서 만들어서 cloudwatch에게 보내보자.
apt install awscli #aws 를 cli방식으로 사용하는 프로그램
apt update
aws
apt install awscli
aws --version
aws configure list
aws configure
aws configure list
aws configure 명령어로 나의 키값을 등록한다(유출주의!!!)
$ aws cloudwatch put-metric-data --metric-name PageViewCount --namespace "MyService" --value 2 --timestamp 2016-01-15T12:00:00.000Z
aws #aws에 명령한다
cloudwatch put-metric-data #클라우드 와치에게 보낸다put-metric-data를
metric-name PageViewCount ##메트릭이름
namespace "MyService" #네임스페이스(테스트서버와 실시간서버를 구분하는 방식)
value 2
aws cloudwatch put-metric-data --metric-name "World" --namespace "Hello" --value 2
이렇게하면 한번 실행된다
실습
쉘스크립트를 이용하여 남은 메모리를 cloudwatch 보내는 보내는 프로그램을 만든다
grep 로 mem 만 출력하고
awf 로 구분하여 배열 아규먼트로 쪼개서 두번째값만 출력하면 총 메모리가 나온다
#!/bin/bash
TOTAL=`free | grep Mem | awk -F " " '{print $2}'`
UESD=`free | grep Mem | awk -F " " '{print $3}'` #사용메모리
AA=`expr $UESD \* 100`
PER=`expr $AA \/ $TOTAL`
echo $PER
aws cloudwatch put-metric-data --metric-name "MemoryUsage" --namespace "EC2" --value $PER
실행하면 cloudwatch 에 지표에 EC2가 생기고 MemoryUsage 가 생긴다.
grep > 리눅스
findstr > 윈도우
그러면 이제 이 스크립트를 계속 실행하게 해야한다.
크론탭으로 실행하자(윈도우는 작업스케쥴러)
크론탭은 분 시 일 월 요일 기준으로 반복시킬수 있다
crontab -e #작업추가
-l #작업리스트
-d #삭제
crontab -e
* * * * * echo test
크론은 백그라운드에서 실행되서 test 내용이 안보인다
그래서 내 화면에 보낼려면
* * * * * echo test > /dev/pts/0
로 바꿔줘야한다.
그래서 1분마다 cloudwatch 에게 메모리 사용량을 보내게 설정하면 아래와 같다
그리고 경고 설정을 해준다.
위와 같이 설정후 메모리를 강제로 늘려서 메일오는지 확인한다.
참고자료