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 做良好的追蹤記錄。

以下整理三種 alarm states
狀態 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。

參考文件: