

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

# 查詢 AWS Global Accelerator 流程日誌
<a name="querying-global-accelerator-flow-logs"></a>

您可以使用 AWS Global Accelerator 建立加速器，透過 AWS 全球網路將網路流量導向最佳端點。如需 Global Accelerator 的詳細資訊，請參閱[什麼是 AWS Global Accelerator](https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html) 。

Global Accelerator 流程日誌可讓您擷取加速器中進出網路界面的 IP 地址流量相關資訊。流程日誌資料會發佈至 Amazon S3，您可以在其中擷取和檢視資料。如需詳細資訊，請參閱 [AWS Global Accelerator中的流程日誌](https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html)。

您可以使用 Athena 建立在 Amazon S3 中指定其位置的資料表來查詢 Global Accelerator 流程日誌。

**若要建立 Global Accelerator 流程日誌的資料表**

1. 複製下列 DDL 陳述式，並將其貼到 Athena 主控台。此查詢會指定 *ROW FORMAT DELIMITED* 並省略指定 [SerDe](serde-reference.md)，這代表該查詢使用 [`LazySimpleSerDe`](lazy-simple-serde.md)。在這個查詢中，欄位以空格結尾。

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS aga_flow_logs (
     version string,
     account string,
     acceleratorid string,
     clientip string,
     clientport int,
     gip string,
     gipport int,
     endpointip string,
     endpointport int,
     protocol string,
     ipaddresstype string,
     numpackets bigint,
     numbytes int,
     starttime int,
     endtime int,
     action string,
     logstatus string,
     agasourceip string,
     agasourceport int,
     endpointregion string,
     agaregion string,
     direction string,
     vpc_id string,
     reject_reason string
   )
   PARTITIONED BY (dt string)
   ROW FORMAT DELIMITED
   FIELDS TERMINATED BY ' '
   LOCATION 's3://amzn-s3-demo-bucket/prefix/AWSLogs/account_id/globalaccelerator/region/'
   TBLPROPERTIES ("skip.header.line.count"="1");
   ```

1. 修改 `LOCATION` 值來指向包含日誌資料的 Amazon S3 儲存貯體。

   ```
   's3://amzn-s3-demo-bucket/prefix/AWSLogs/account_id/globalaccelerator/region_code/'
   ```

1. 在 Athena 主控台中執行查詢。查詢完成之後，Athena 會註冊 `aga_flow_logs` 資料表，讓其中的資料可供查詢。

1. 建立分割區以讀取資料，如下列查詢範例所示。該查詢會針對指定日期建立單一分割區。將預留位置換成日期和位置。

   ```
   ALTER TABLE aga_flow_logs
   ADD PARTITION (dt='YYYY-MM-dd')
   LOCATION 's3://amzn-s3-demo-bucket/prefix/AWSLogs/account_id/globalaccelerator/region_code/YYYY/MM/dd';
   ```

## AWS Global Accelerator 流程日誌的範例查詢
<a name="querying-global-accelerator-flow-logs-examples"></a>

**Example – 列出透過特定節點傳遞的請求**  
下列範例查詢列出了透過 LHR 節點傳遞的要求。使用 `LIMIT` 運算子來一次限制查詢的日誌數量。  

```
SELECT 
  clientip, 
  agaregion, 
  protocol, 
  action 
FROM 
  aga_flow_logs 
WHERE 
  agaregion LIKE 'LHR%' 
LIMIT 
  100;
```

**Example – 列出了接收最多 HTTPS 請求的端點 IP 地址**  
若要查看哪些端點 IP 位址正在接收最多的 HTTPS 要求數目，請使用下列查詢。此查詢會計算 HTTPS 連接埠 443 所接收的封包數、依目的地 IP 地址分組，然後傳回前 10 個 IP 地址。  

```
SELECT 
  SUM(numpackets) AS packetcount, 
  endpointip 
FROM 
  aga_flow_logs 
WHERE 
  endpointport = 443 
GROUP BY 
  endpointip 
ORDER BY 
  packetcount DESC 
LIMIT 
  10;
```