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

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

範例:Count HTTP 4xx 代碼

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

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

使用 CloudWatch 主控台建立量度篩選
  1. 請在以下位置開啟 CloudWatch 主控台。 https://console.aws.amazon.com/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