

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

# 路由伺服器對等記錄功能
<a name="route-server-peer-logging"></a>

需要執行下列動作時，請使用 VPC 路由伺服器對等記錄功能：
+ 監控 BGP 與 BFD 工作階段運作狀態
+ 對連線問題進行疑難排解
+ 檢閱歷史工作階段變更
+ 追蹤網路狀態

## 定價
<a name="pricing"></a>
+ **CloudWatch**：將路由伺服器對等日誌發布至 CloudWatch Logs 時，會對公開日誌收取資料擷取和存檔費用。
+ **S3**：將路由伺服器對等日誌發布至 Amazon S3 時，會對公開日誌收取資料擷取和存檔費用。
+ **Data Firehose**：會收取標準擷取和傳送費用。

已取代的日誌是來自特定 AWS 服務的日誌，可用於磁碟區分層定價，並交付至 CloudWatch Logs、Amazon S3 或 Amazon Data Firehose。如需詳細資訊，請開啟 [Amazon CloudWatch 定價](https://aws.amazon.com//cloudwatch/pricing/)，選取 **Logs** (日誌)，然後尋找 **Vended Logs** (付費日誌)。

## 日誌格式範例
<a name="example-log-format"></a>

```
{
    "resource_arn": "arn:aws:ec2:us-east-1:111122223333:route-server-peer/rsp-1234567890abcdef0",
    "event_timestamp": 1746643505367,
    "type": "RouteStatus",
    "status": "ADVERTISED",
    "message": {
        "prefix": "10.24.34.0/32",
        "asPath": "65000",
        "med": 100,
        "nextHopIp": "10.24.34.1"
    }
}

{
    "resource_arn": "arn:aws:ec2:us-east-1:111122223333:route-server-peer/rsp-1234567890abcdef0",
    "event_timestamp": 1746643490000,
    "type": "BGPStatus",
    "status": "UP",
    "message": null
}
```

其中：
+ `resource_arn` 是路由伺服器對等的 ARN。
+ `event_timestamp` 是事件的時間戳記。
+ 我們產生的日誌事件的 `type` (`RouteStatus`、`BGPStatus`、`BFDStatus`)。
+ `status` 欄位是狀態更新。
  + 對於 `RouteStatus` 類型訊息
    + `ADVERTISED` (路由已由對等公告)
    + `UPDATED` (現有路由已由對等更新)
    + `WITHDRAWN` (路由已由對等撤銷)
  + 對於 `BFDStatus` 與 `BGPStatus` 更新
    + `UP`, `DOWN`.
+ `message` 欄位目前僅用於 RouteStatus 訊息類型的路由屬性，但可能會填入任何類型訊息的相關資訊。

------
#### [ AWS Management Console ]

若要建立路由伺服器對等日誌：

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中的**虛擬私有雲端**下，選擇**路由伺服器**。

1. 在**路由伺服器**頁面上，選擇**路由伺服器對等**。

1. 選擇**日誌交付**索引標籤。

1. 選擇**新增日誌交付**。

1. 選擇目的地並進行設定：
   + Amazon CloudWatch Logs
     + **日誌類型**：要交付的日誌類型。唯一支援的日誌類型是 EVENT\_LOGS。
     + **目的地日誌群組**：用於接收日誌的 CloudWatch 日誌群組。您可以挑選現有的日誌群組或建立新的日誌群組 (範例：/aws/vpc/route-server-peers)。
     + **欄位選取**：要包含在日誌中的資料欄位。
     + **輸出格式**：日誌的格式：
       + JSON：用於電腦處理的結構化格式
       + 文字：純文字格式
     + **欄位分隔符號**：使用文字格式時，這是分隔欄位的字元 (範例：逗號、製表符、空格)。
   + Amazon S3
     + 跨帳戶 - 將日誌傳送至不同的 AWS 帳戶
       + **日誌類型**：要交付的日誌類型。唯一支援的日誌類型是 EVENT\_LOGS。
       + **交付目的地 ARN**：將傳送日誌之另一個 AWS 帳戶中 S3 儲存貯體的 Amazon Resource Name。
       + **欄位選取**：要包含在日誌中的資料欄位。
       + **尾碼**：新增至日誌檔案名稱的結尾 (範例：.log、.txt)。
       + **Hive 相容**：開啟後，系統會將日誌整理在資料夾結構中，該資料夾結構可以使用 Hive 型工具，以便於使用 Amazon Athena 等服務進行搜尋。
       + **欄位分隔符號**：使用文字格式時，這是分隔欄位的字元。
     + 在目前帳戶中
       + **日誌類型**：要交付的日誌類型。唯一支援的日誌類型是 EVENT\_LOGS。
       + **目的地 S3 儲存貯體**：您帳戶中用於接收日誌的 S3 儲存貯體。您可以指定子資料夾路徑。
       + **欄位選取**：要包含在日誌中的資料欄位。
       + **尾碼**：新增至日誌檔案名稱的結尾 (範例：.log、.txt)。
       + **Hive 相容**：開啟後，系統會將日誌整理在資料夾結構中，該資料夾結構可以使用 Hive 型工具以便於進行搜尋。
       + **欄位分隔符號**：使用文字格式時，這是分隔欄位的字元。
   + Amazon Data Firehose
     + 跨帳戶
       + **日誌類型**：要交付的日誌類型。唯一支援的日誌類型是 EVENT\_LOGS。
       + **交付目的地 ARN**：另一個 AWS 帳戶中 Firehose 交付串流的 Amazon Resource Name。
       + **欄位選取**：要包含在日誌中的資料欄位。
       + **欄位分隔符號**：使用文字格式時，這是分隔欄位的字元。
     + 在目前帳戶中
       + **日誌類型**：要交付的日誌類型。唯一支援的日誌類型是 EVENT\_LOGS。
       + **交付目的地串流**：您帳戶中用於接收日誌的 Firehose 交付串流。該串流必須使用 "Direct Put" 來源類型。
       + **欄位選取**：要包含在日誌中的資料欄位。
       + **輸出格式**：日誌的格式：
         + JSON：用於電腦處理的結構化格式
         + 文字：純文字格式
       + **欄位分隔符號**：使用文字格式時，這是分隔欄位的字元。

------
#### [ Command line ]

本節中的命令與《AWS CLI 命令參考》**連結。本文件旨在詳細說明執行命令時可使用的選項。

若要建立路由伺服器對等日誌：

1. 使用 [put-delivery-source](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/put-delivery-source.html) 命令。
   + 範例請求

     ```
     aws logs put-delivery-source --name "source-rsp-1234567890abcdef0" --resource-arn "arn:aws:ec2:us-east-1:111122223333:route-server-peer/rsp-1234567890abcdef0" --log-type "EVENT_LOGS"
     ```
   + 回應範例

     ```
     {
          "deliverySource": {
             "name": "source-rsp-1234567890abcdef0",
             "arn": "arn:aws:logs:us-east-1:111122223333:delivery-source:source-rsp-1234567890abcdef0",
             "resourceArns": [
                 "arn:aws:ec2:us-east-1:111122223333:route-server-peer/rsp-1234567890abcdef0"
             ],
             "service": "ec2",
             "logType": "EVENT_LOGS"
         }
     }
     ```

1. 使用 [put-delivery-destination](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/put-delivery-destination.html) 命令。
   + 下列 AWS CLI 範例會建立路由伺服器日誌。日誌會傳送至指定的日誌群組。
   + 範例請求

     ```
     aws logs put-delivery-destination --name "destination-rsp-abcdef01234567890" --destination-resource-arn "arn:aws:logs:us-east-1:111122223333:log-group:/aws/vendedlogs/ec2/route-server-peer/EVENT_LOGS/rsp-abcdef01234567890"
     ```
   + 回應範例

     ```
     {
          "deliveryDestination": {
             "name": "destination-rsp-abcdef01234567890",
             "arn": "arn:aws:logs:us-east-1:111122223333:delivery-destination:destination-rsp-abcdef01234567890",
             "deliveryDestinationType": "CWL",
             "deliveryDestinationConfiguration": {
                 "destinationResourceArn": "arn:aws:logs:us-east-1:111122223333:log-group:/aws/vendedlogs/ec2/route-server-peer/EVENT_LOGS/rsp-abcdef01234567890"
             }
         }
     }
     ```

1. 使用 [create-delivery](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/create-delivery.html) 命令。
   + 範例請求

     ```
     aws logs create-delivery --delivery-source-name "source-rsp-1234567890abcdef0" --delivery-destination-arn "arn:aws:logs:us-east-1:111122223333:delivery-destination:destination-rsp-abcdef01234567890"
     ```
   + 回應範例

     ```
     {
          "delivery": {
             "id": "1234567890abcdef0",
             "arn": "arn:aws:logs:us-east-1:111122223333:delivery:1234567890abcdef0",
             "deliverySourceName": "source-rsp-1234567890abcdef0",
             "deliveryDestinationArn": "arn:aws:logs:us-east-1:111122223333:delivery-destination:destination-rsp-abcdef01234567890",
             "deliveryDestinationType": "CWL",
             "recordFields": [
                 "resource_arn",
                 "event_timestamp",
                 "type",
                 "status",
                 "message"
             ]
         }
     }
     ```

------