2 minute read

AWS 클라우드 서버 모니터링

CloudWatch

image

CloudWatch 구성하기

  • EC2 생성

모니터링 세팅

image
image
세부모니터링을 활성화 한다.

지표 보기

image

경보 생성하기

image
image
image
image
이메일 인증을 해야한다.

SNS 등록하기

image

확인

생성한 EC2에 부하를 줘본다.
image
image
image
다음과 같이 설정한 cpu 사용량을 넘으면 e-mail로 메일이 온다.

대시보드

image
image
위젯을 추가하여 대시보드를 꾸밀 수 있다.

EC2정보 CloudWatch로 보내기

  • EC2 패키지 다운
    apt update
    apt install -y awscli
    aws --version #확인
    
  • 계정정보 설정
    aws configure list
    

    image
    image
    엑세스키 생성을 해야 한다.

    aws configure
    

    엑세스키 정보와 지역( ap-northeast-2 )을 입력한다.

image

  • EC2로 지표 생성하기
    aws cloudwatch put-metric-data --metric-name "World" --namespace "Hello" --value 2 #누를때 마다 생성되니 한 번만 누르자
    

    image

Shell 프로그래밍

리눅스에서 사용하는 명령어를 가지고 프로그래밍한다. 반복적인 작업을 자동화 한다.

변수

vi ex01.sh
  • 쉡 스크립트 생성 ```Shell Script #!/bin/bash #명령어를 어떤 쉘로 실행시킬지 지정

ls #실행시키고 싶은 명령어


- 쉘 스크립트 실행하기
```shell
chmod 755 ex01.sh   #권한 설정
/root/ex01.sh   #쉘 스크립트 실행
  • 쉘 스크립트 변수만들기
    vi ex02.sh
    

```Shell Script #!/bin/bash

VAR1=10

echo $VAR1

- 쉘 스크립트 실행하기
```shell
chmod 755 ex02.sh   #권한 설정
/root/ex02.sh   #쉘 스크립트 실행

```Shell Script #!/bin/bash

VAR1=10 VAR2=20

RESULT=expr $VAR1 + $VAR2

echo $RESULT

- 행, 열 뽑기
```shell
free    #free의 Mem 행에 total열을 뽑아본다.
31-46-168:~# free
              total        used        free      shared  buff/cache   available
Mem:         997500      146484      160168         780      690848      698124
Swap:             0           0           0

free | grep Mem | awk -F " " '{print $2}'
  • 쉘 스크립트로 만들어 보기
    vi ex04.sh
    

    ```Shell Script #!/bin/bash

TOTAL=free | grep Mem | awk -F " " '{print $2}'

echo $TOTAL

```shell
chmod 755 ex04.sh   #권한 설정
/root/ex04.sh   #쉘 스크립트 실행

```Shell Script #!/bin/bash

TOTAL=free | grep Mem | awk -F " " '{print $2}' USED=free | grep Mem | awk -F " " '{print $3}'

RESULT=expr $USED \* 100 RESULT=expr $RESULT \/ $TOTAL

echo $RESULT


### 메모리 사용 EC2에 보내기

```Shell Script 
#!/bin/bash

TOTAL=`free | grep Mem | awk -F " " '{print $2}'`
USED=`free | grep Mem | awk -F " " '{print $3}'`

RESULT=`expr $USED \* 100`
RESULT=`expr $RESULT \/ $TOTAL`

echo $RESUL
aws cloudwatch put-metric-data --metric-name "MemoryUsage" --namespace "EC2" --value $RESULT
/root/ex04.sh

image

반복작업 스케쥴링

crontab -e  # 명령어를 실행하면 편집기가 실행되고 편집기를 이용해 내용을 작성한다.
crontab -e
* * * * *       /root/ex04.sh #1분마다 ex04.sh를 실행한다.
crontab -l

image

온프레미스로 설정해보기

  • 프로메테우스 : 메트릭 수집 프로그램
  • 그라파나 : 시각화 도구
  • 알람 : 메일 서버, DNS 서버

메일 서버 만들기

apt install -y postfix # no configration 선택
vi /etc/hostname
mail.cloudcampkjh.kro.kr #내가 만든 도메인 주소 넣기
cp /etc/postfix/main.cf.proto /etc/postfix/main.cf
vi /etc/postfix/main.cf

https://www.server-world.info/en/note?os=Ubuntu_18.04&p=mail&f=1 을 참조하여 파일 수정

  • 187번 라인 참조 image
    111.111.0.0/24 형식으로 저장
newaliases
systemctl restart postfix
netstat -anlp | grep :25

image

apt -y install dovecot-core dovecot-pop3d dovecot-imapd

https://www.server-world.info/en/note?os=Ubuntu_18.04&p=mail&f=2 참조해서 내용 수정

systemctl restart dovecot
netstat -anlp | grep :143

image

  • 확인
    apt -y install mailutils
    echo 'export MAIL=$HOME/Maildir/' >> /etc/profile.d/mail.sh
    useradd -s /bin/bash -m test01
    passwd test01
    useradd -s /bin/bash -m test02
    passwd test02
    su - test01
    
  • 메일 보내기
    mail test02@localhost
          Cc:  #엔터
          Subject: Test Mail   #입력하고 엔터
          This is the first mail.    #입력하고 엔터
          #Ctrl + d로 작성 종료
    exit
    
  • 메일 확인
    su - test02
    mail
    

    image

도메인 설정

한국에 할당받은 도메인 설정