

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

# 設定 Amazon EventBridge 事件匯流排的日誌
<a name="eb-event-bus-logs"></a>

您可以設定 EventBridge 傳送日誌，詳細說明事件匯流排如何處理事件，以協助故障診斷和偵錯。

您可以選擇下列 AWS 服務做為 EventBridge 交付指定事件匯流排日誌的日誌*目的地*：
+ Amazon CloudWatch Logs

  EventBridge 會將日誌交付至指定的 CloudWatch Logs 日誌群組。

  CloudWatch Logs 可讓您將您使用的所有系統、應用程式和 AWS 服務的日誌，集中在可高度擴展的單一服務中。如需詳細資訊，請參閱《Amazon CloudWatch Logs 使用者指南》**中的[使用日誌群組和日誌串流](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)。
+ Amazon Data Firehose 

  EventBridge 會將日誌交付至 Firehose 交付串流。

  Amazon Data Firehose 是一項全受管服務，可將即時串流資料交付至特定 AWS 服務等目的地，以及任何自訂 HTTP 端點或受支援第三方服務供應商擁有的 HTTP 端點。如需詳細資訊，請參閱[《Amazon Data Firehose 使用者指南》中的建立 Amazon Data Firehose 交付串流](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)。 **
+ Amazon S3 

  EventBridge 會將日誌做為 Amazon S3 物件傳送到指定的儲存貯體。

  Amazon S3 是一項物件儲存服務，提供領先業界的可擴展性、資料可用性、安全性和效能。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的 Amazon S3 中的[上傳、下載和使用 Amazon S3 中的物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-downloading-objects.html)。

## 記錄對事件匯流排的運作方式
<a name="eb-event-logs-overview"></a>

EventBridge 會為下列項目產生日誌：
+ 符合事件匯流排上規則的任何 AWS 服務事件
+ 下列方法傳遞的任何事件，無論事件是否成功擷取或符合任何規則：
  + 來自[合作夥伴事件來源的事件](eb-saas.md)
  + [從封存重播](eb-archive.md)的事件
  + 透過 傳送至匯流排的事件 [`PutEvents`](eb-putevents.md)

EventBridge 不會記錄僅符合[受管規則](eb-rules.md#eb-rules-managed)的事件。

傳送至每個所選日誌目的地的日誌資料相同。

您可以透過下列方式自訂 EventBridge 傳送至所選目的地的日誌：
+ 您可以指定*日誌層級*，這會決定 EventBridge 將日誌傳送至所選目的地的步驟。如需詳細資訊，請參閱[指定事件匯流排日誌層級](#eb-event-bus-logs-level)。
+ 您可以指定 EventBridge 在相關時是否包含更精細的資訊，包括：
  + 事件詳細資訊
  + 目標輸入資訊
  + 目標請求資訊

  如需詳細資訊，請參閱[在事件匯流排日誌中包含詳細資訊](#eb-event-logs-data)。

### 日誌交付考量
<a name="eb-event-logs-delivery"></a>

當您設定事件匯流排的記錄時，請記住下列考量事項：
+ 事件匯流排日誌記錄會盡最大努力交付。大多數對事件匯流排的請求已正確設定為在交付的日誌記錄中記錄結果。不保證事件匯流排記錄的完整性和及時性。
+ 在某些情況下，交付事件匯流排日誌記錄本身會產生事件，然後傳送至 EventBridge，這可能會導致日誌記錄交付中斷。因此，EventBridge 不會記錄下列事件：
  + AWS KMS `[Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)` 當使用客戶受管金鑰加密的日誌記錄傳送到日誌目的地時，產生的 和 `[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)`事件。
  + `[PutRecordBatch](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)` Firehose 中由交付事件匯流排日誌產生的事件。
+ 對於 S3 日誌目的地，不建議指定已啟用 [ EventBridge 事件通知的](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications-eventbridge.html)目的地儲存貯體，因為這可能會導致日誌交付中斷。

### 記錄加密
<a name="eb-event-logs-encryption"></a>

傳送日誌時，EventBridge 會使用為事件匯流排指定的 KMS 金鑰來加密每個日誌記錄的 `detail`和 `error`區段。交付後，記錄會解密，然後使用為日誌目的地指定的 KMS 金鑰重新加密。

如需詳細資訊，請參閱[加密事件匯流排日誌](encryption-bus-logs.md)。

### 指定事件匯流排記錄許可
<a name="eb-event-logs-permission"></a>

若要從事件匯流排啟用記錄，您必須授予 EventBridge 從該匯流排傳送日誌的許可。新增將 **AllowVendedLogDeliveryForResource** 授予事件匯流排的政策。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ServiceLevelAccessForLogDelivery",
            "Effect": "Allow",
            "Action": [
                "events:AllowVendedLogDeliveryForResource"
            ],
            "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/my-event-bus*"
        }
    ]
}
```

------

如需詳細資訊，請參閱《*CloudWatch Logs 使用者指南*》中的[服務特定許可](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-vended-logs-permissions)。

## 指定事件匯流排日誌層級
<a name="eb-event-bus-logs-level"></a>

您可以指定 EventBridge 記錄到所選日誌目的地的事件處理步驟類型。

從下列詳細資訊層級中選擇，以包含在日誌中。日誌層級會套用至為事件匯流排指定的所有日誌目的地。每個日誌層級都包含先前日誌層級的步驟。
+ **OFF** – EventBridge 不會傳送任何日誌。這是預設值。
+ **錯誤** – EventBridge 會傳送與事件處理和目標交付期間產生的錯誤相關的任何日誌。
+ **INFO** – EventBridge 會傳送與錯誤相關的任何日誌，以及在事件處理期間執行的主要步驟。
+ **TRACE** – EventBridge 會傳送事件處理中所有步驟期間產生的任何日誌。

下表列出每個日誌層級中包含的事件處理步驟。


| 步驟 | TRACE | INFO | ERROR | OFF | 
| --- | --- | --- | --- | --- | 
|  擷取的事件  | x | x |  |  | 
|  事件擷取失敗  | x | x | x |  | 
|  已接收的事件  | x |  |  |  | 
|  已開始調用嘗試  | x |  |  |  | 
|  呼叫嘗試永久失敗  | x | x | x |  | 
|  呼叫嘗試可重試失敗  | x | x | x |  | 
|  調用嘗試成功  | x |  |  |  | 
|  調用嘗試已調節  | x | x | x |  | 
|  調用 DLQ  | x | x | x |  | 
|  呼叫失敗  | x | x | x |  | 
|  調用已開始  | x | x |  |  | 
|  調用成功  | x | x |  |  | 
|  調用調節已啟動  | x | x | x |  | 
|  沒有相符的規則  | x | x |  |  | 
|  規則相符   | x | x |  |  | 
|  規則比對已開始   | x |  |  |  | 

## 在事件匯流排日誌中包含詳細資訊
<a name="eb-event-logs-data"></a>

您可以指定 讓 EventBridge 在其產生的日誌中包含更精細的資訊。此資料對於故障診斷和偵錯非常有用。如果您選取此選項，EventBridge 會將此資料包含在所有指定日誌目的地的相關記錄中。

詳細資訊包括下列欄位：
+ `event_detail`：事件本身的詳細資訊。
+ `target_input`：EventBridge 傳送至目標的請求。
+ `target_properties`: 

## 截斷事件匯流排日誌中的資料
<a name="eb-event-logs-data-truncation"></a>

由於日誌目的地限制，EventBridge 會將日誌記錄限制為 1 MB。如果日誌記錄超過此限制，EventBridge 會依下列順序移除下列欄位來截斷記錄：
+ `target_input`
+ `target_properties`
+ `target_response_body`

如有必要，EventBridge 會從下列日誌記錄類型中移除 `event_detail` 欄位：
+ `EVENT_RECEIVED`
+ `EVENT_INGESTED`
+ `EVENT_INGESTED_FAILED`
+ `RULE_MATCH_STARTED`

如果需要截斷，EventBridge 會移除整個欄位。

如果 EventBridge 截斷事件中的欄位，則該`dropped_fields`欄位會包含已移除的資料欄位清單。

## 事件匯流排日誌中的錯誤報告
<a name="eb-event-logs-errors"></a>

EventBridge 也會在代表失敗狀態的步驟中，在可用的情況下包含錯誤資料。這些步驟包括：
+ `EVENT_INGEST_FAILURE`
+ `INVOCATION_THROTTLE_START`
+ `INVOCATION_ATTEMPT_THROTTLE`
+ `INVOCATION_ATTEMPT_RETRYABLE_FAILURE`
+ `INVOCATION_ATTEMPT_PERMANENT_FAILURE`
+ `INVOCATION_FAILURE`
+ `INVOCATION_DLQ`