Amazon CloudWatch 是 AWS 內建的監控服務,可以用來監控 AWS 上面的資源和應用程式,記錄一下我使用的心得。
Dashboards
如其名,可以根據 alarms 和 metrics 來建置視覺化數據,支援 AWS CloudFormation。
雖然支援 AWS CloudFormation,但實際使用上的心得,還是會建議透過 AWS Management Console 來建置,而不要透過 AWS CloudFormation 來建置,因為當你一個 dashboard 擁有很多 widget 的時候,你的 data source 會變得相當的複雜,逐漸變得難以透過 AWS CloudFormation 維護。
Alarms
根據 metrics 和 threshold 設定各式各樣的監控,當警告發生變化的時候可以觸發各種不同的 actions,支援 AWS CloudFormation。
設定 alarms 可以做很多事情,常見的有 AWS Auto Scaling 來管理應用程式資源的增減,也可以透過 AWS SNS 將警告轉發到不同的 collaboration tools,建議透過 AWS CloudFormation 來管理你的 alarm,並搭配 version control 做良好的追蹤記錄。
狀態 | OK (綠色) | ALARM (紅色) | INSUFFICIENT (橘色) |
說明 | 正常,指標於閥值之內 | 異常,指標於閥值之外 | 資訊不完全,新設定或是未知資料 |
Events
Logs (Log Groups)
根據 AWS 各種服務所送出的 log streaming 建置 log group,然後透過 metric filter 將 log 轉成對應的 metric,支援 AWS CloudFormation。
Log 不能直接設定到 dashboard 和 alarm,要先透過 metric filter 提供的 pattern syntax 來分析 log,然後將分析結果存成自定義的 metric,有了自定義的 metric 才可以開始使用 dashboard 和 alarm 的功能,建議透過 AWS CloudFormation 來管理你的 metric filter,並搭配 version control 做良好的追蹤記錄。
Metrics
Amazon CloudWatch 的核心,基本上所有的功能都是圍繞著 metric 在運轉,在 AWS 上面的資源和應用程式都可以送各式各樣的 metric 到 Amazon CloudWatch,每個 metric 會根據 dimension 來做分類(不過 log metric filter 沒有支援 dimension)。
我們可以透過 AWS Management Console 搜尋 metric,然後設定對應的 dashboard 和 alarm。
參考文件: