如何查看連線至 Amazon EFS 之 Amazon EC2 執行個體的清單?

2 分的閱讀內容
0

我想查看已掛載 Amazon Elastic File System (Amazon EFS) 的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體清單。我該怎麼做?

簡短描述

VPC 流程日誌可用來追蹤每個 Amazon EFS 掛載目標之彈性網路介面上的流量。流程日誌可以推送到 Amazon CloudWatch Logs。透過使用 CloudWatch Logs Insights,篩選掛載目標彈性網路介面上的流量,以提供在特定時間戳記掛載 Amazon EFS 的 Amazon EC2 執行個體清單。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請確保您使用的是最新的 AWS CLI 版本

執行以下步驟一次。完成這些步驟後,每次您要列出掛載 Amazon EFS 之用戶端的 IP 地址時,請執行查詢以建立目前清單。

建立日誌群組

  1. 開啟 CloudWatch 主控台
  2. 在導覽窗格中,選擇日誌,然後選擇日誌群組
  3. 選擇建立日誌群組
  4. 輸入日誌群組名稱保留設定和選用的 KMS 金鑰 ARN。您也可以在這裡新增標籤
  5. 選擇建立

建立有權將流程日誌發佈到 CloudWatch Logs 的 Identity and Access Management (IAM) 角色

  1. 開啟 IAM 主控台
  2. 在導覽窗格的存取管理下,選擇角色
  3. 選擇建立角色建立新的 IAM 角色
  4. 連接至 IAM 角色的 IAM 政策必須包含將 VPC 流程日誌發佈到 CloudWatch 的許可。同樣地,它必須具有允許流程日誌服務擔任該角色的信任關係。

取得 Amazon EFS 掛載目標所使用的彈性網路介面清單

**注意:**Amazon EFS 針對每個可用區域都有不同的掛載目標。

  1. 開啟 Amazon EFS 主控台
  2. 檔案系統下,選擇特定的 Amazon EFS,然後選擇檢視詳細資訊
  3. 按一下網路,然後記下每個掛載目標的網路介面 ID

建立流程日誌

  1. 開啟 Amazon EC2 主控台
  2. 選擇網路與安全,然後選擇網路介面卡
  3. 選擇掛載目標正在使用的所有彈性網路介面。
  4. 動作功能表中,選擇建立流程日誌。建立流程日誌時,請使用下列值:
  • **名稱:**選用
  • 篩選條件:選取全部
  • **最大彙總間隔:**選擇預設值 10 分鐘或 1 分鐘
  • 目的地: 選取傳送至 CloudWatch Logs
  • 目的地日誌群組: 選擇您建立的日誌群組
  • **IAM 角色:**選擇您建立的 IAM 角色
  • 日誌記錄格式:選擇 AWS 預設格式自訂格式
  • 標籤: 選用
  1. 選擇建立
  2. 透過選擇您為其建立流程日誌的特定彈性網路介面來監視流程日誌狀態。在畫面底部,選擇流程日誌。驗證狀態作用中
  3. 大約 10 分鐘後,第一個流程日誌會推送至 CloudWatch Logs。

驗證流程日誌位於 CloudWatch Logs 中

  1. 開啟 CloudWatch 主控台,然後選擇日誌
  2. 選擇在步驟 1 中建立的日誌群組
  3. 驗證現在會顯示您建立的所有日誌串流。每個彈性網路介面都有不同的日誌串流。

執行查詢

若要在 CloudWatch Logs Insights 中執行查詢:

  1. 在 CloudWatch 主控台中,選擇日誌,然後選擇 Logs Insights
  2. 從下拉式功能表中選擇您建立的日誌群組。
  3. 選擇您要檢閱其流程日誌的持續時間 (5 分鐘、30 分鐘、1 小時、3 小時、12自訂)。
  4. 輸入下面的查詢:
fields @timestamp, @message | filter dstPort="2049" | stats count(*) as FlowLogEntries by srcAddr | sort FlowLogEntries desc

注意:此查詢會檢閱針對所有掛載目標產生的所有流程日誌。它會篩選目的地連接埠設定為連接埠 = 2049 的日誌 (Amazon EFS 用戶端連線至 NFS 連接埠 2049 上的掛載目標)。它會擷取所有唯一來源 IP (Amazon EFS 用戶端 IP),並依最活躍的用戶端連線對其進行排序。活動由流程日誌中的項目數決定。

  • 選擇執行查詢。輸出會包含您在其中掛載 Amazon EFS 的所有 Amazon EC2 執行個體的私有 IP 清單。

以下是查詢輸出的範例:

#          srcAddr              FlowLogEntries
1      111.22.33.44                 78
2      111.55.66.77                36
3      111.88.99.000                33

使用 AWS CLI 執行查詢<br>

若要從 AWS CLI 執行查詢,請遵循下列步驟:

  1. 設定 VPC 流程日誌後,您可以使用 AWS CLI 命令執行查詢。
  2. 檢查 AWS CLI 是否已更新至最新版本:
$ pip install --upgrade awscli
  • 檢查 jq 是否已安裝:
yum install -y jq
  • 使用下列 AWS CLI 查詢 (使用以下查詢參數):
  • log-group-name: 輸入您建立的日誌群組名稱。
  • start-time/end-time: 這些值採用 Unix/Epoch 時間。使用 Epoch 轉換器將人類可讀的時間戳記轉換為 Unix/Epoch 時間。
  • test.json: 您可以選擇性地在每次執行此命令時變更 json 檔案名稱。變更名稱可確保先前的輸出不會與新輸出合併。
  • sleep: 執行 CloudWatch Logs Insights 查詢時,會將此值 (以秒為單位) 用作延遲。輸入的值取決於您要檢閱流程日誌的時間長度。如果您想要檢閱較長持續時間 (例如數週) 的日誌,請增加睡眠時間。
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

AWS 官方
AWS 官方已更新 2 年前