brunch

You can make anything
by writing

C.S.Lewis

by Master Seo May 21. 2019

116.CloudWatch BasicMonitoring

<1> 목표

CloudWatch로 서버의 기본 모니터링을 하고자 한다.



<2> 작업 순서 

1.  모니터링 하기 위한 사전 준비

2. Cloud Watch로  기본 모니터링 하기

3. CloudWatch  사용자 지정 모니터링 추가하기



1.  모니터링 하기 위한 사전 준비


1)  테스트 VM 1대 생성

EC2 중지, 삭제 등  모니터링 잘 되는지 테스트용

비용 안나오게  t2.micro로 생성한다.


2) AWS SNS 서비스 설정  

메일로 받을시 수신 메일 사전 설정

AWS SNS >  Topic 만들기  >  topasvga1-mail

topasvga1로 확인 요청 메일이 간다  >  확인한다. (Confirm subscrption)


3) S3 버킷 생성

로그 저장용

cloudwatch-log1.serverchk.com




2. Cloud Watch로  기본 모니터링 하기


1)  기본 모니터링 상태는  EC2 인스턴스  > Monitoring Tab 에서 확인한다.

서버 생성되면 CloudWatch 에서 기본 모니터링은 진행된다.

항목 : CPU Utillization , Disk Reads, Disk Write , Network in , Network Out , Status Check Failed  (Any, Instance, System)


1) 디폴트 5분주기로 모니터링 된다.  최소 1분으로 모니터링가능 (유료)

2) 데이터는 2주 동안만 보관합니다.






2) 빠른 모니터링을 위해서는 1분 단위 모니터링으로 변경하기 - 과금 된다.

Enable Detailed monitoring  > Yes Enable  하면 1분 단위로 모니터링 한다.



3) 알람 설정하기

EC2 >  Instance 클릭  Monitoring  >     Create Alarm  >  CPU가 1% 이상이면 알람오게 설정해보자.

기본적으로 CloudWatch Alarms : No Alarms configured  라고 나온다.


Name of alarm : testmon-web01-cpu-1-over-awsec2-i-05a79b076efabc69a-CPU-Utilization



4) Apache 웹서버 설치


Yum으로 설치하기

yum install httpd -y
/usr/sbin/httpd

ps -ef |grep httpd


vi /etc/httpd/conf/httpd.conf
cd /var/www/html
vi index.html


ps -ef |grep httpd
/usr/sbin/httpd stop
/usr/sbin/httpd -k restart


또는 


소스 파일을 다운로드 받고, 컴파일해 설치하기

1 cd /tmp
2 ftp ftp.sayclub.co.kr
3 yum install ftp
4 ftp ftp.sayclub.co.kr
5 ls
6 tar zxvf httpd-2.4.38.tar.gz
7 cd httpd-2.4.38/
8 yum install apr*
9 yum install gcc
10 yum install pcre*
11 ./configure --prefix=/usr/local/apache
12 make ; make install



5) 웹서버 설치를 위해 파일을 받는 동안  CPU가 1% 알람 메일이 와있다.,




3. CloudWatch  사용자 지정 모니터링 추가하기


1)  CloudWatch 기본 모니터링에서 안되는것

Cloud watch 에 존재하지 않는것은 메모리 사용량과 빈공간 , 스왑이다.

여기서 사용자지정 지표를 만들어 모니터링하자.


// 참고:  예전엔 스크립트로 메모리를 모니터링 했다.

// 최근엔  에이전트에서 메모리 사용 수집이 된다. 에이전트로 하자.



2) 스크립트로  메모리 모니터링하자.  


Cloud watch 사용자 지정 모니터링 설정하기.


아마존 리눅스 서버의  경우.


- EC2 로그인 한다.


# yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA.x86_64


# wget http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip

#  unzip CloudWatchMonitoringScripts-1.2.2.zip

# cd aws-scripts-mon



- IAM  role을 만들고 서버에 할당한다.

IAM >  IAM role을 만든다.  

admin 권한을 role에 추가한다.  // 우선 되는걸 확인하기 위해 admin권한을 주었다.


서버에 role을 준다.

EC2 > Instance Settings > Attach/Replace IAM Role



-  스크립트 실행한다.

aws-scripts-mon]# ./mon-put-instance-data.pl --mem-used --mem-avail

Successfully reported metrics to CloudWatch. Reference Id: e4b65b5b-77b6-11e9-831a-6b19662a0a9b



- 크론텝에 등록이나 작업실행도구에서 정기적으로 실행하면 메모리 현황을 볼수 있다.

# crontab -e

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

설정 참고  : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/mon-scripts.html



- CloudWatch > Metrics  >  All metrics >  Linux System > Memory Utilization  확인한다.



CloudWatch > Metrics  >  All metrics >  Linux System > Memory Used

CloudWatch > Metrics  >  All metrics >  Linux System > Memory Available  본다.





<3>  CloudWatch가  조합해서 알람도 받을수 있습니다. 


(2020년 3월 초  기능 업데이트)


https://aws.amazon.com/ko/about-aws/whats-new/2020/03/amazon-cloudwatch-now-allows-you-to-combine-multiple-alarms/?nc1=h_ls




<4> 비용이 나오지 않도록   실습종료후  만들어진  EC2는 반드시 삭제한다.!!!




https://brunch.co.kr/@topasvga/1581



감사합니다.

매거진의 이전글 115.AWS 다른 Console계정으로 쉽게 이동하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari