Skip to content

如何在 VPC 流程日誌中使用 CloudWatch Logs Insights 查詢?

2 分的閱讀內容
0

我想使用 Amazon CloudWatch Logs Insights 查詢來處理位於日誌群組中的 Amazon Virtual Private Cloud (Amazon VPC) 流程日誌。

簡短說明

當您開啟目標 CloudWatch Logs 的 VPC 流程日誌時,您會看到每個彈性網路介面的一組日誌串流。如果發生問題,請使用 CloudWatch Logs Insights 來識別潛在原因並驗證已部署的修正。

如需有關 CloudWatch Logs Insights 支援之日誌類型的詳細資訊,請參閱支援的日誌和發現的欄位

解決方法

執行查詢

使用 CloudWatch 主控台執行範例查詢執行自訂查詢。若要執行之前執行的查詢,請選擇 History (歷史紀錄)。若要匯出結果,請選擇 Export results (匯出結果),然後選擇格式。

範例查詢

情境 1

您有網頁伺服器、應用程式伺服器和資料庫伺服器。您收到逾時或 HTTP 503 錯誤,並且要確定錯誤的原因。

使用下列範例變數執行查詢:

  • 動作設定為拒絕,因此僅會傳回拒絕的連線。
  • 查詢僅包括內部網路。
  • 伺服器 IP 位址清單會同時顯示傳入和傳出連線 (srcAddrdstAddr)。
  • 限制設定為 5,因此僅會顯示前五個項目。
  • 網站伺服器 IP 位址為 10.0.0.4。
  • 應用程式伺服器 IP 位址為 10.0.0.5。
  • 資料庫伺服器 IP 位址為 10.0.0.6。

範例查詢:

filter(
   action="REJECT" and
   dstAddr like /^(10\.|192\.168\.)/ and  
   srcAddr like /^(10\.|192\.168\.)/ and
   (srcAddr = "10.0.0.4" or dstAddr = "10.0.0.4" or srcAddr = "10.0.0.5" or dstAddr = "10.0.0.5" or srcAddr = "10.0.0.6" or dstAddr = "10.0.0.6")
)
| stats count(*) as records by srcAddr,dstAddr,dstPort,protocol
| sort records desc
| limit 5

情境 2

您在網路介面上遇到間歇性逾時。若要在某段時間內檢查網路介面上是否遭拒,請執行下列查詢:

fields @timestamp, interfaceId, srcAddr, dstAddr, action
| filter (interfaceId = 'eni-05012345abcd' and action = 'REJECT')
| sort @timestamp desc
| limit 5

情境 3

若要分析 VPC 流程日誌並在特定網路介面上產生報告,請執行下列查詢:

fields @timestamp, @message
 | stats count(*) as records by dstPort, srcAddr, dstAddr as Destination
 | filter interfaceId="eni-05012345abcd"
 | filter dstPort="80" or dstPort="443" or dstPort="22" or dstPort="25"
 | sort HitCount desc
 | limit 10

上一個查詢會檢查傳送至不同連接埠的流量。

情境 4

若要篩選 VPC 流程日誌,並列出嘗試連線到 VPC 中特定 IP 位址或 CIDR 的 IP 位址,請執行下列其中一個查詢。

特定 IP 位址:

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter srcAddr like "172.31."

特定 CIDR:

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter isIpv4InSubnet(srcAddr,"172.31.0.0/16")

如需更多範例查詢,請參閱範例查詢

AWS 官方已更新 8 個月前