星期六, 11月 02, 2019

使用 Stackdriver 監控 GCE CPU 使用率, 超出監控值主動發出通知小記

使用 Stackdriver 監控 GCE CPU 使用率, 超出監控值主動發出通知小記


OS: Container with openSUSE Leap 15


以前管地端機器的時候, 因為大部分的專案跟自己有關係, 可以藉由 nagios 或其他方式進行監控.  現在業務上以雲端的資源為主, 所以就要多利用雲端原生的方式來進行監控.


需求: GCE CPU 超過一定使用量, 通知使用者


做法: 使用 Stackdriver Monitoring Alert 來達成


登入 GCP Console


點選 STACKDRIVER 的 Monitoring




這個時候會被導向到另外一個頁面 https://app.google.stackdriver.com/
如果之前專案沒有建立過 Starkdriver 的工作區, 那就按照引導建立工作區並將 GCP 上面的專案加入到工作區
  • Stackdriver 費用又是另外一個故事, 改天再來說


點選 Alerting -- > Create a Policy




點選 Add Condition 



Metrics 的部分我使用
compute.googleapis.com/instance/cpu/utilization
  • 另外有看到 agent.googleapis.com/cpu/utilization, 猜測是要安裝 agent, 然後由agent 傳回值 




Filter 的部分
剛開始是使用 instance_id 方式, 但是要一台一台指定, 轉向使用 name (VM 名稱)的方式來進行.
之後的目標是使用標籤的方式來 filter.




更新使用標籤的部分

  • 之前沒有看到標籤是因為時間差, 我一建立完 GCE, 然後套用 env: prod 的標籤就去設定 Stackdriver monitoring policy, 標籤的資料還沒同步過去, 當套用標籤後過一些時間, 再重新建立 filter 就會看到 env 可以選, 然後點選 prod 就可以了
  • 感謝 GCPUG.TW 的朋友幫忙

Configuration 部分設定 1分鐘超過 50 % 就警告




可以在右方觀察到基準線
也可以看到套用的 GCE VM

點選 SAVE 完成 Condition 設定


接下來設定通知方式
點選下拉式選單來選取, 這邊我是只能選 Email
  • 希望未來使用 Telegram 通知 :)



輸入要通知的 E-mail address -- > Add Notification Channel
輸入 Policy 名稱 -- > Save
完成設定



接下來進行驗證
我在GCP 上面建立兩台 openSUSE Leap 15, 並安裝 stress-ng 來進行壓測
  • 可以參考之前的文章 [1] 


使用 stress-ng 壓測
在 GCE VM 上面
# stress-ng  -c  4  --cpu-method all


可以從剛剛設定的 Policy 觀察到 CPU 超過監控值




達到門檻值, 也看到產生 Incident 與通知使用者






完成相關設定以及驗證


做完 Console 的方式, 接下來當然會想去評估 API 方式, 參考官方文件


看起來的邏輯是要
  • 建立通知管道 Notification
  • 然後才能建立 Policy


因為還要針對 YAML 或是 JSON 內容進行編輯, 不能直接使用 get 或是 describe 方式取得之後來套用, 所以這個部分就先跳過


先記下來


~ enjoy it


Reference:
  1. 宏庭科技 Joy 幫忙, 給我基本相關做法




沒有留言: