AWS/Monitoring

AWS Monitoring - 4. CloudWatch Custom Metrics

TTwY 2020. 10. 20. 13:47
728x90
반응형

지난번 글에서 EC2 인스턴스에 CloudWatch Agent 설치[Linux/Windows]를 진행했는데요. CloudWatch Agent를 설치하면 EC2 인스턴스의 인프라 지표를 CloudWatch를 통해 모니터링 할 수 있습니다.

 

이번에는 Linux EC2 인스턴스에서 사용자가 만들어 생성해낸 지표를 CloudWatch에서 확인 할 수 있도록 하는 방법에 대해서 알아보려고 합니다.

즉 CloudWatch의 Custom Metrics을 작성하는 방법에 대해 알아보겠습니다.

 

Amazon Linux 2가 설치 되어 있는 EC2 인스턴스를 가지고 진행하겠습니다.[이미 EC2 인스턴스는 생성이 되어 있다는 전제로 진행하겠습니다.]

 

1. IAM User 생성

CloudWatch를 조작할 수 있는 권한을 가진 IAM이 필요 합니다. IAM 권한을 가지고 세세하게 권한을 컨트롤 할 수 있습니다. 저희는 테스트 용으로 진행을 하기 때문에 CloudWatchFullAccess 권한을 부여하여 진행 하도록 하겠습니다.

 

IAM > 사용자 > 사용자 추가 버튼을 클릭하여 아래와 같이 사용자 이름을 작성하고 프래그래밍 방식 엑세스만 체크 합니다.

이번 테스트에서는 액세스 키 ID 및 비밀 엑세스 키만 필요하기 때문입니다.

IAM의 권한은 CloudWatch Custom을 테스트 할 것이기 때문에 CloudWatchFullAccess 권한을 주어 진행하겠습니다.

다음 눌러 IAM User를 생성하면 아래와 같은 화면이 나옵니다.

액세스 키 ID와 비밀 액세스 키를 적어 따로 보관하든지, .csv 다운로드 버튼을 클릭하여 따로 보관을 해두셔도 됩니다. 절대로, 이 값들은 공개되어서는 안됩니다. 이 값으로 권한에 맞는 작업을 진행할 수 있기 때문에 보안에 신경을 쓰면서 키를 관리해주셔야 합니다.

 

2. AWS CLI 설치

Amazon Linux 2 로 진행을 합니다. Amazon Linux2에는 기본적으로 AWS CLI 1버전이 설치되어 있습니다.

다음과 같은 명령어로 설치를 확인 할 수 있습니다.

aws --version

아마존 리눅스에는 버전 1이 자동으로 설치 되어 있습니다. AWS CLI는 버전 2가 최신 버전이며, 버전 2로 설치하여 테스트 진행하겠습니다.

OS 종류별 AWS CLI 2 버전 설치 가이드는 아래의 URL로 접속하여 확인 할 수 있습니다.

docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2-linux.html#cliv2-linux-install

 

Linux에서 AWS CLI 버전 2 설치, 업데이트 및 제거 - AWS Command Line Interface

Linux에서 AWS CLI 버전 2 설치, 업데이트 및 제거 이 단원에서는 Linux에 AWS CLI 버전 2를 설치, 업데이트 및 제거하는 방법에 대해 설명합니다. AWS CLI 버전 2는 다른 Python 패키지에 종속되지 않습니다.

docs.aws.amazon.com

# Linux x86 (64-bit)
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

위의 명령어를 순서대로 입력하여 설치를 진행합니다.

설치 진행 후 aws --version 을 입력하면 이전의 버전과 그대로인 것이 확인됩니다. 터미널 접속을 종료하여 다시 재접속 해줍니다.

재접속 후 aws --version을 입력하면 버전이 변경되었음을 확인할 수 있습니다.

3. AWS Configure

AWS CLI 설치를 완료 했으면 AWS Configure 설정을 해줍니다.

AWS Configure 설정에 대해서 정확하게 모르신다면, 이전에 제가 작성한 아래의 글중에 AWS Configure 부분을 참고하시기 바랍니다.

longtermsad.tistory.com/13

 

Mac OS에 AWS Cli 설정하기

AWS Cli 란? AWS 커맨드 라인 인터페이스(AWS Command Line Interface, aws cli)는 AWS 서비스를 관리하는 통합 도구입니다. 여러 AWS 서비스를 명령줄에서 제어하고 스크립트를 통해 자동화할 수 있습니다. 설

longtermsad.tistory.com

4. Custom Metric 스크립트 작성

테스트 스크립트로 80 Port 상태에 대한 Custom Metric 지표 스크립트를 작성해 보겠습니다. Port는 ELB의 Port 체크로도 확인 할 수 있으나 테스트를 위하여 스크립트를 작성하여 Custome Metric을 생성하여 CloudWatch에서 설정하여 그래프로 보여 지는 것을 확인하겠습니다.

해당 EC2 인스턴스에 80에 대한 프로세스가 띄워져 있음을 전제로 진행합니다.

vi cw_custom.sh
#!/bin/bash

TCP_CONN_PORT_80=0

if (netstat -nlt | grep 80 | grep LISTEN > /dev/null ) ; then
    TCP_CONN_PORT_80=1
else
    TCP_CONN_PORT_80=0
fi

echo $TCP_CONN_PORT_80

aws cloudwatch put-metric-data --metric-name TCP_port_80_State --dimensions Instance=i-0ce58e466c9095914  --namespace "Custom" --value $TCP_CONN_PORT_80

EC2 인스턴스 내에서 sh 파일을 생성한 후 1회 실행을 합니다.

.sh 파일에 작성해 논 echo 명령어로 실행값이 무엇인지 확인 했습니다.

Custom Mertric에 대한 AWS 공식 Doc의 URL은 아래와 같습니다. 아래의 Doc를 활용하여 본인이 원하는 대로 Custome Metric을 생성할 수 있고 crontab을 설정하여 시간, 일 등으로 설정하여 주기적으로 Custom Metric을 CloudWatch로 보낼 수 있습니다.

aws.amazon.com/ko/premiumsupport/knowledge-center/cloudwatch-custom-metrics/

 

CloudWatch에서 사용자 지정 지표 생성

정상 조건의 경우 이 변수는 0입니다. 두 조건이 모두 충족되는 상황에서는 값이 1로 설정됩니다. 그런 다음 이러한 파라미터를 중심으로 사용자 지정 경보를 구축하여 시스템에 문제가 있는 상

aws.amazon.com

5. AWS CloudWatch 데이터 확인 및 Dashboard 설정

AWS 콘솔로 접속하여 CloudWatch > 지표를 선택하면 아래와 같이 위에서 설정했던 [--namespace "Custom"] 해당 설정값으로 인해 지표에 Custom 이라는 사용자 지정 네임스페이스가 보일 겁니다.

위와 같이 지표에서 값을 선택하여 그래프로 설정하여 본인이 보고 싶은 기간, 통계 등을 설정하여 그래프로 만들어 Dashboard를 설정하여 모니터링 할 수 있습니다.

 

간단하게 80 Port에 대한 Custom Metric을 다루어보았습니다. CloudWatch에서 제공하는 지표 외에 Port 상태 확인 등 자신에게 필요한 메트릭에 대해서 CloudWath put-metric-data를 이용하여 CloudWatch 지표로 보내어 활용 할 수 있습니다.

 

다음은 Grafana를 EC2 인스턴스에 설치하여 CloudWatch와 연동하여 누구든지 어디서든 쉽게 접근하여 본인이 설정한 Dashboard를 화긴 할 수 있도록 설정하는 법을 해보도록 하겠습니다.

 

감사합니다. 

728x90
반응형