AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
如何查看已連線至 Amazon EFS 的 Amazon EC2 執行個體清單?
我已在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上掛載了 Amazon Elastic File System (Amazon EFS) 中的 Amazon EFS 檔案系統。我想要查看 Amazon EC2 執行個體的清單。
簡短說明
若要追蹤每個 Amazon EFS 掛載目標網路介面的流量,請使用 Amazon Virtual Private Cloud (Amazon VPC) 流程日誌。將流程日誌發佈至 Amazon CloudWatch Logs。接著,使用 CloudWatch Logs Insights 來篩選掛載目標網路介面上的流量流向。CloudWatch Logs Insights 會使用特定時間戳記來識別已掛載 EFS 檔案系統的 EC2 執行個體。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
建立日誌群組
請完成以下步驟:
- 開啟 Amazon CloudWatch console (Amazon CloudWatch 主控台)。
- 在導覽窗格中,選擇 Logs (日誌),然後選擇 Log groups (日誌群組)。
- 選擇 Create log group (建立日誌群組)。
在 Log group name (日誌群組名稱) 中,輸入名稱。
在 Retention setting (保留設定) 中,輸入保留設定。
(選用) 新增 AWS Key Management Service (AWS KMS) 金鑰 Amazon Resource Name (ARN) 和標籤。 - 選擇 Create (建立)。
建立具有將流程日誌發佈至 CloudWatch Logs 權限的 IAM 角色
請完成以下步驟:
- 開啟 AWS Identity and Access Management (IAM) console (AWS Identity and Access Management (IAM) 主控台)。
- 在 Access management (存取管理) 底下,選擇 Roles (角色)。
- 選擇 Create role (建立角色),然後 create a new IAM role (建立新的 IAM 角色)。
- 在角色的 IAM 政策中,新增權限,並包含允許服務擔任該角色的信任政策。
取得 Amazon EFS 檔案系統的掛載目標網路介面
**注意:**EFS 在每個可用區域都有不同的掛載目標。
請完成以下步驟:
- 開啟 EFS console (EFS 主控台)。
- 在 File systems (檔案系統) 底下,選擇您的 EFS 檔案系統,然後選擇 View details (檢視詳細資料)。
- 選擇 Network (網路),然後記下每個掛載目標的網路介面 ID。
建立流程日誌
請完成以下步驟:
- 開啟 EC2 console (EC2 主控台)。
- 選擇 Network & Security (網路與安全性),然後選擇 Network Interfaces (網路介面)。
- 選擇掛載目標所用的網路介面。
- 在 Actions (動作) 功能表中,選擇 Create flow log (建立流程日誌)。
- 輸入以下值:
(選用) 在 Name (名稱) 中,輸入流程日誌名稱。
在 Filter (篩選條件) 中,選擇 All (全部)。
在 Maximum aggregation interval (最大彙總間隔) 中,選擇預設的 10 分鐘或 1 分鐘。
在 Destination (目的地) 中,選擇 Send to CloudWatch logs (傳送至 CloudWatch Logs)。
在 Destination log group (目的地日誌群組) 中,選擇您的日誌群組。
在 IAM role (IAM 角色) 中,選擇您的 IAM 角色。
在 Log record format (日誌記錄格式) 中,選擇 AWS default format (AWS 預設格式) 或 Custom format (自訂格式)。
(選用) 在 Tags (標籤) 中,新增標籤。 - 選擇 Create (建立)。
- 若要監控流程日誌狀態,請選擇您的網路介面,然後選擇 Flow logs (流程日誌)。確認 Status (狀態) 為 Active (啟用)。
**注意:**流程日誌系統會在約 10 分鐘後將第一筆日誌發佈至 CloudWatch Logs。
確認流程日誌位於 CloudWatch Logs 中
請完成以下步驟:
- 開啟 CloudWatch console (CloudWatch 主控台)。
- 在導覽窗格中,選擇 Log groups (日誌群組)。
- 在 Log groups (日誌群組) 中,選擇您的日誌群組。
- 確認所有日誌串流皆已顯示。
**注意:**每個網路介面都有不同的日誌串流。
使用 CloudWatch Logs Insights 執行查詢
請完成以下步驟:
- 開啟 CloudWatch console (CloudWatch 主控台)。
- 在導覽窗格中,選擇 Logs (日誌),然後選擇 Logs Insights。
- 選擇您的日誌群組。
- 選擇以下其中一個期間值: 5m (5 分鐘)、30m (30 分鐘)、1h (1 小時)、3h (3 小時)、12h (12 小時),或 Custom (自訂)。
- 執行以下查詢:
fields @timestamp, @message | filter dstPort="2049" | stats count(*) as FlowLogEntries by srcAddr | sort FlowLogEntries desc
前述查詢會檢視所有掛載目標的所有流程日誌。此查詢會篩選目的地連接埠設定為 Port=2049 的日誌。EFS 用戶端會透過 NFS 連接埠 2049 連線至掛載目標。此查詢會擷取所有唯一的 EFS 用戶端 IP 位址,並依最活躍的用戶端連線進行排序。流程日誌中的項目數量會決定活動層級。
查詢輸出包含所有已掛載 EFS 檔案系統之執行個體的私有 IP 位址清單。
查詢輸出範例:
# srcAddr FlowLogEntries1 111.22.33.44 782 111.55.66.77 36 3 111.88.99.000 33
執行 start-query 命令
確認已安裝 jq:
yum install -y jq
接著,執行以下 start-query 命令:
aws logs start-query --log-group-name EFS-ENI-Flowlogs --start-time 1643127618 --end-time 1643128901 --query-string 'filter dstPort="2049" | stats count(*) as FlowLogEntries by srcAddr | sort FlowLogEntries desc' > test.json && sleep 10 && jq .queryId test.json | xargs aws logs get-query-results --query-id
在命令中,設定以下參數:
- 在 log-group-name 中,輸入您的日誌群組名稱。
- 在 start-time 與 end-time 中,輸入開始與結束時間。
**注意:**這些值為 Unix Epoch 時間。若要轉換為可讀的時間戳記,請在 Epoch 轉換器網站上使用 Epoch & Unix 時間戳記轉換工具。 - (選用) 對於 test.json,您可以在每次執行命令時變更 JSON 檔案名稱。變更名稱時,先前的輸出不會與新的輸出合併。
- 對於 sleep,若要在查詢執行期間檢視流程日誌,請以秒為單位指定延遲時間。
若要查看目前掛載 EFS 檔案系統之用戶端的 IP 位址,請執行新的查詢。
相關內容
已提問 3 年前
