View a markdown version of this page

範例:Count HTTP 4xx 代碼 - Amazon CloudWatch Logs

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

範例:Count HTTP 4xx 代碼

在上述範例中,您可能想要監控 web 服務存取日誌和監控 HTTP 回應碼層級。例如,您可能想要監控所有 HTTP 400 層級錯誤。不過,您可能不會想要為每個傳回程式碼指定新指標篩選條件。

以下範例示範如何建立指標,其中包含使用從 範例:Count HTTP 404 代碼 範例之 Apache 存取日誌格式來自存取日誌的所有 400 層級 HTTP 程式碼回應。

使用 CloudWatch 主控台建立指標篩選條件
  1. 透過 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

  2. 在導覽窗格中,選擇 Log groups (日誌群組)。

  3. 選擇 Apache 伺服器的日誌群組名稱。

  4. 選擇 Actions > Create metric filter (建立指標篩選條件)。

  5. 針對 Filter Pattern (篩選條件模式),輸入 [ip, id, user, timestamp, request, status_code=4*, size]。

  6. (選用) 若要測試篩選條件模式,請在 Test Pattern (測試模式) 下方,輸入一個或多個日誌事件,用以測試模式。每個日誌事件都必須在一行內,因為 Log event messages (日誌事件訊息) 方塊中使用換行來分隔日誌事件。

  7. 選擇 Next (下一步),然後針對 Filter Name (篩選條件名稱),輸入 HTTP4xxErrors。

  8. 在 Metric (指標詳細資訊) 下的 Metric Namespace (指標命名空間) 中,輸入 MyNameSpace。

  9. 針對 Metric name (指標名稱),輸入 HTTP4xxErrors。

  10. 針對 Metric value (指標值),輸入 1。這會指定針對每個包含「4xx 錯誤」的日誌事件以 1 的方式遞增計數。

  11. 針對 Default value (預設值),輸入 0,然後選擇 Next (下一步)。

  12. 選擇 Create metric filter (建立指標篩選條件)。

使用 建立指標篩選條件 AWS CLI

在命令提示中,執行下列命令:

aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name HTTP4xxErrors \ --filter-pattern '[ip, id, user, timestamp, request, status_code=4*, size]' \ --metric-transformations \ metricName=HTTP4xxErrors,metricNamespace=MyNamespace,metricValue=1,defaultValue=0

您可以使用 put-event 呼叫中的以下資料來測試這個規則。如果您沒有在之前的範例中移除監控規則,您將會產生兩種不同的指標。

127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287 127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308 127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3