星期四, 9月 05, 2019

Cloudwatch + Alarm with EC2 CPU Utilization 測試小記

Cloudwatch + Alarm with EC2 CPU Utilization 測試小記

OS: Container with openSUSE Leap 15
EC2: openSUSE Leap 15.1 in AWS

今天來測試 Cloudwatch 目標是 EC2 instance 如果 CPU 使用率 超過 50% 達到一定的條件, 就送出警告

首先先建立 openSUSE Leap 

==== 在主機上面 ====

啟動 container

> docker  run  -v  ~/.aws:/root/.aws -v  ~/.azure:/root/.azure  -v ~/.config/gcloud:/root/.config/gcloud  -v  ~/.ssh:/root/.ssh  -it  sakana/ansible_opensuse15  /bin/bash

  • 這邊我有透過 -v 把本機上面的三個平台的設定檔掛載到容器內, 還有 .ssh 目錄 也掛載上面, 因為 google 的 SSH 金鑰 也會存放在裡面


==== 在 container 內 ====

參考之前的文章建立 openSUSE Leap 15.1 的 EC2 instance

查詢 openSUSE Leap 15.1 的 Image id
# aws  ec2  describe-images --filters 'Name=name,Values=openSUSE*'

查詢 Subnet id
# aws ec2 describe-subnets

security-group-ids 查詢方式
# aws  ec2  describe-security-groups

查詢 Key Pair
# aws  ec2  describe-key-pairs

啟動 openSUSE Leap 15.1 instance
# aws  ec2  run-instances --image-id  ami-036afe8f05ebda1fe  --subnet-id  subnet-92dfe4fb --security-group-ids sg-090a6648734644255  --instance-type  t2.micro --key-name  test-key --count  1


==== 在主機上面 ====

使用 ssh -i  test-key.pem  -l  ec2-user  SERVER_IP
看看是否可以登入

完成建立 EC2 instance


接下來設定 Cloudwatch
想法上就是 EC2 的 CPU 用量超過一定的條件就通知

登入 AWS Console

點選 服務 -- > Cloudwatch
點選 指標 -- > 點選 EC2


點選 每個執行個體指標



勾選要監控的 Instance 還有指定指標名稱為 CPUUtilization



點選 圖表化指標
點選 建立警示圖案 ( 鬧鈴 )



建立警示
時間的部分我使用預設值, 因為 5 分鐘是不用收費的, 可以參考 Cloudwatch 定價


設定 CPU 使用率 大於 50 %
3 次取樣有 2 次符合就警告
點選 下一步


通知的部分會結合 SNS 服務, 一定範圍內都是免費

點選 建立新主題 輸入要通知的電子郵件
點選 建立主題



點選 下一步

輸入 名稱
點選 下一步


在預覽畫面
點選 建立警示

完成 建立警示

可以觀察 Cloudwatch


如果要收到通知信, 就要去收 AWS SNS 寄來的信件, 並點選信內連結確認訂閱

最後來測試是否有作用

使用 ssh -i  test-key.pem  -l  ec2-user  SERVER_IP
登入 openSUSE Leap 15.1 instance in AWS

測試工具
  • stress-ng

切換為 root
> sudo  su  -

使用 zypper 安裝 stress-ng
# zypper  install  -y  stress-ng

使用 stress-ng 指令 壓測 CPU
# stress-ng  -c  2 --cpu-method  all

stress-ng: info:  [2920] defaulting to a 86400 second (1 day, 0.00 secs) run per stressor
stress-ng: info:  [2920] dispatching hogs: 2 cpu


在 Cloudwatch 上面觀察


靜待 10 mins ( 3 x 5分鐘, 裡面要有 2 個符合 CPU > 50 % )

達到條件就會變成警示中


檢查訂閱的電子郵件

確認收到通知 :)

完成 Lab

~ enjoy it

Reference: