存取記錄 - AWS Elemental MediaPackage

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

存取記錄

MediaPackage 提供存取記錄,以擷取傳送至 MediaPackage 頻道或封裝群組之要求的詳細資訊。 MediaPackage 會針對傳送至頻道輸入端點的請求產生輸入存取記錄,並針對傳送至頻道端點或封裝群組資產的請求產生輸出存取記錄。每個日誌包含收到請求的時間、用戶端的 IP 地址、延遲、請求路徑和伺服器回應等資訊。您可以使用這些存取記錄來分析服務效能並疑難排解問題。他們還可以幫助您了解客戶群並了解您的 MediaPackage 帳單。

存取記錄是預設為停 MediaPackage 用的選用功能。啟用存取記錄之後,會 MediaPackage 擷取記 CloudWatch 錄檔,並將其儲存至您在建立或管理存取記錄時指定的記錄群組。需支付典型 CloudWatch 記錄費用。

將存取記錄發佈至的權限 CloudWatch

啟用存取記錄時,請在您的AWS帳戶中 MediaPackage 建立 IAM 服務連結角色。AWSServiceRoleForMediaPackage此角色允許 MediaPackage 將存取記錄發佈至 CloudWatch。如需如何 MediaPackage 使用服務連結角色的相關資訊,請參閱使用 MediaPackage 的服務連結角色

啟用存取日誌

您可以使用 AWS Management Console 或 AWS CLI 啟用存取日誌。

使用主控台啟用現有頻道的存取記錄
  1. 開啟主 MediaPackage 控台,網址為 https://console.aws.amazon.com/mediapackage/

  2. 選擇您的頻道。

  3. 在「設定存取記錄檔」區段中,執行下列動作:

    1. 選擇「啟用入口存取記錄檔」或「啟用出口存取記錄」,或兩者皆選。

    2. 您可以指定自訂 CloudWatch 記錄群組名稱。如果保留為空白,則使用預設群組。

使用主控台啟用現有封裝群組的存取記錄
  1. 開啟主 MediaPackage 控台,網址為 https://console.aws.amazon.com/mediapackage/

  2. 從導覽區段中選取 [封裝群組]。

  3. 選擇您的包裝組。

    1. 選取導覽列中的「編輯」。

    2. 在 [存取記錄] 區段中,選取 [啟用輸出存取記錄]。

    3. 您可以指定自訂 CloudWatch 記錄群組名稱。如果保留為空白,則使用預設群組。

  4. 選擇 Save Changes (儲存變更)。

若要啟用頻道的存取記錄 AWS CLI

使用配置日誌命令搭配--ingress-access-logs參數、--egress-access-logs參數或兩者,以啟用存取記錄。您可以包含--ingress-access-logs--egress-access-logs參數的 CloudWatch 記錄群組名稱。如果未指定記錄群組名稱,則會使用 MediaPackage 預設的記錄群組。對於輸入記錄檔,預設記錄群組為/aws/MediaPackage/IngressAccessLogs,輸出記錄檔的預設記錄群組為。/aws/MediaPackage/EgressAccessLogs

使用下列命令可使用預設記錄群組啟用輸入和存取記錄:

aws mediapackage configure-logs --id channel-name --ingress-access-logs {} --egress-access-logs {}

此命令沒有傳回值。

若要啟用封裝群組的存取記錄,請使用 AWS CLI

使用配置日誌命令搭配--egress-access-logs參數來啟用存取記錄。您可以包含參數的 CloudWatch 記錄群組名--egress-access-logs稱。如果未指定記錄群組名稱,則會使用 MediaPackage 預設的記錄群組。對於輸入記錄檔,預設記錄群組為/aws/MediaPackage/IngressAccessLogs,輸出記錄檔的預設記錄群組為。/aws/MediaPackage/EgressAccessLogs

使用下列命令來啟用使用預設記錄群組的出口存取記錄:

aws mediapackage configure-logs --id package-name --egress-access-logs {}

此命令沒有傳回值。

停用存取記錄

您可以隨時停用 MediaPackage 頻道或封裝群組的存取記錄。

使用主控台停用存取記錄
  1. 開啟主 MediaPackage 控台,網址為 https://console.aws.amazon.com/mediapackage/

    選取您的頻道或套件群組。

  2. 選擇 編輯

  3. 在 [存取記錄] 區段中,取消選取 [入口存取記錄]、[輸出存取記錄] 或兩者。

  4. 選擇 Save Changes (儲存變更)。

若要停用頻道的存取記錄,請使用 AWS CLI

使用命configure-logs令停用存取記錄。如果一或多個存取記錄參數未使用configure-logs命令宣告,則會停用對應的存取記錄。例如,以下指令輸出存取記錄會針對通道啟用,而且會停用輸入存取記錄:

aws mediapackage configure-logs --id channel-name --egress-access-logs {}

此命令沒有傳回值。

若要使用停用封裝群組的存取記錄 AWS CLI

使用命configure-logs令停用存取記錄。如果一或多個存取記錄參數未使用configure-logs命令宣告,則會停用對應的存取記錄。例如,在以下命令中configure-logs不包含,--egress-access-logs因此出口日誌被禁用:

aws mediapackage configure-logs --id package-group-name

此命令沒有傳回值。

存取日誌格式

存取日誌檔是由一系列的 JSON 格式的日誌記錄所組成,其中每個日誌記錄代表一個請求。日誌中欄位的順序可能有所不同。以下是頻道輸出存取記錄的範例:

{ "timestamp": "2020-07-13T18:59:56.293656Z", "clientIp": "192.0.2.0/24", "processingTime": 0.445, "statusCode": "200", "receivedBytes": 468, "sentBytes": 2587370, "method": "GET", "request": "https://aaabbbcccdddee.mediapackage.us-east-1.amazonaws.com:443/out/v1/75ee4f20e5df43e5821e5cb17ea19238/hls_7_145095.ts?m=1538005779", "protocol": "HTTP/1.1", "userAgent": "sabr/3.0 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Safari/528.17", "account": "111122223333", "channelId": "my_channel", "channelArn": "arn:aws:mediapackage:us-west-2:111122223333:channels/ExampleChannelID", "domainName": "aaabbbcccdddee.mediapackage.us-east-1.amazonaws.com", "requestId": "aaaAAA111bbbBBB222cccCCC333dddDDD", "endpointId": "my_endpoint", "endpointArn": "arn:aws:mediapackage:us-west-2:111122223333:origin_endpoints/ExampleEndpointID" }

下列清單依序說明記錄檔記錄欄位:

timestamp

收到請求的時間。此值是 ISO-8601 日期時間,且會根據服務請求之主機的系統時鐘。

clientIp

要求用戶端的 IP 位址。

處理時間

處理要求所 MediaPackage 花費的秒數。此值是從收到您要求的最後位元組的時間開始,計算到回應傳送出第一組位元組的時間。

statusCode

回應的數字 HTTP 狀態碼。

接收位元組

MediaPackage 伺服器所接收到請求內文中的位元組數。

发信

MediaPackage 伺服器傳送的回應主體中的位元組數。這個值通常與伺服器回應所包含的Content-Length標頭值相同。

方法

用於要求的 HTTP 要求方法:刪除、取得、標頭、選項、修補程式、POST 或 PUT。

請求

請求 URL。

protocol

用於要求的通訊協定類型,例如 HTTP。

用戶代理

識別產生要求的用戶端的使用者代理字串,以雙引號括住。此字串包含一或多個產品識別碼產品/版本。如果字串超過 8 KB,則會截斷。

account

用來提出請求之帳戶的 AWS 帳戶 ID。

channelId

接收要求的通道識別碼。

渠道朗

接收請求的通道的亞馬遜資源名稱(ARN)。

domainName

用戶端在 TLS 握手期間提供的伺服器名稱指示網域,以雙引號括住。-如果用戶端不支援 SNI 或網域與憑證不相符,且預設憑證會顯示給用戶端,則此值會設定為。

requestId

由生成的字符串,用 MediaPackage 於唯一標識每個請求。

端點 ID

接收要求之端點的識別碼。

端點角

接收請求之端點的亞馬遜資源名稱 (ARN)。

日誌中欄位的順序可能有所不同。

閱讀存取記錄

MediaPackage 將訪問日誌寫入亞馬遜 CloudWatch 日誌。需支付典型 CloudWatch 記錄費用。使用 CloudWatch 日誌深入解析來讀取存取記錄。如需如何使用 CloudWatch 日誌見解的詳細資訊,請參閱記錄使用指南中的使用 CloudWatch 記錄洞察分析AWS CloudWatch 記錄資料

注意

存取記錄可能需要幾分鐘的時間才會顯示在中 CloudWatch。如果沒有看到記錄檔,請稍候幾分鐘,然後再試一次。

範例

本節包含可用來讀取 MediaPackage除錯記錄檔資料的範例查詢。

範例 檢視頻道的 HTTP 狀態碼回應。

使用此查詢可依通道的 HTTP 狀態碼來檢視回應。您可以使用此功能來檢視 HTTP 錯誤碼回應,以協助您疑難排解問題。

fields @timestamp, @message | filter channelId like 'my-channel' | stats count() by statusCode
範例 取得通道上每個端點的要求數目。
fields @timestamp, @message | filter channelId like 'my-channel' | stats count() by endpointId
範例 檢視每個資產的狀態代碼。
fields @timestamp, @message | filter assetArnlike 'my-asset-id' | stats count() by statusCode
範例 取得封裝組態隨時間變化的 P99 回應時間
fields @timestamp, @message | filter packagingConfigArn like 'my-dash-config' | stats pct(processingTime, 99) by bin(5m)