我想使用 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 位址清單會同時顯示傳入和傳出連線 (srcAddr 和 dstAddr)。
- 將限制設定為 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")
如需更多範例查詢,請參閱範例查詢。