翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アクセスのログ記録
MediaPackage は、MediaPackage チャネルまたはパッケージンググループに送信されるリクエストについての詳細情報をキャプチャした、アクセスログを提供します。MediaPackage は、チャンネルの入力エンドポイントに送信されたリクエストに関する、受信アクセスログを生成します。同時に、チャンネルのエンドポイントまたはパッケージンググループのアセットに送信されたリクエストについては、送信アクセスログを生成します。各ログには、リクエストを受け取った時刻、クライアントの IP アドレス、レイテンシー、リクエストのパス、サーバーレスポンスなどの情報が含まれます。これらのアクセスログを使用して、サービスのパフォーマンスを分析し、問題のトラブルシューティングが行えます。また、顧客基盤について調べたり、MediaPackage の請求を把握したりする際にも役立ちます。
アクセスログ記録は、MediaPackage のオプション機能であり、デフォルトでは無効化されています。アクセスのログ記録を有効にすると、MediaPackage はログのキャプチャを開始し、作成または管理時に指定した CloudWatch のロググループに、そのログ記録を保存します。CloudWatch Logs の一般料金が適用されます。
CloudWatch にログを発行するためのアクセス許可
アクセスログ記録を有効にすると、MediaPackage は IAM のサービスにリンクされたロール (AWSServiceRoleForMediaPackage
) を、AWS アカウント内に作成します。このロールにより、MediaPackage はアクセスログを CloudWatch に公開できるようになります。MediaPackage によるサービスにリンクされたロールの使用については、「 MediaPackage のサービスにリンクされたロールの使用」を参照してください。
アクセスログの作成の有効化
AWS Management Console または AWS CLI を使用して、アクセスログを有効にできます。
コンソールを使用して既存のチャネルのアクセスログを有効にするには
-
MediaPackage コンソール (https://console.aws.amazon.com/mediapackage/
) を開きます。 -
使用しているチャンネルを選択します。
-
[Configure Access Logs] (アクセスログの設定) セクションで、以下の操作を行います。
-
[Enable ingress access logs] (受信アクセスログの有効化) または[Enable egress access logs] (送信アクセスログの有効化) のどらか (あるいはその両方) を選択します。
-
CloudWatch ロググループ名をカスタムで指定できます。この設定を空白のままにすると、デフォルトのグループが使用されます。
-
コンソールを使用して既存のパッケージンググループのアクセスログを有効にするには
-
MediaPackage コンソール (https://console.aws.amazon.com/mediapackage/
) を開きます。 -
ナビゲーションセクションで、[Packaging groups] (パッケージンググループ) をクリックします。
-
使用しているパッケージンググループを選択します。
-
ナビゲーションバーで [Edit] (編集) をクリックします。
-
[Access logging] (アクセスログ記録) セクションで、[Enable egress access logs] (送信アクセスログの有効化) を選択します。
-
CloudWatch ロググループ名をカスタムで指定できます。この設定を空白のままにすると、デフォルトのグループが使用されます。
-
-
[Save changes] (変更の保存) をクリックします。
AWS CLI を使用してチャネルのアクセスログを有効にするには
--ingress-access-logs
パラメータか --egress-access-logs
パラメータ (またはその両方) を指定して configure-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
パラメータを使用して configure-logs コマンドを実行し、アクセスログ記録を有効にします。--egress-access-logs
パラメータには、CloudWatch のロググループ名を含めることができます。ロググループ名を指定しない場合、MediaPackage はデフォルトのロググループを使用します。デフォルトのロググループは、入力ログでは /aws/MediaPackage/IngressAccessLogs
に、出力ログの場合は /aws/MediaPackage/EgressAccessLogs
になります。
次のコマンドによりデフォルトのロググループを使用して、送信アクセスログを有効化します。
aws mediapackage configure-logs --id
package-name
--egress-access-logs {}
このコマンドの戻り値はありません。
アクセスログの作成の無効化
MediaPackage チャネルまたはパッケージンググループのアクセスログは、任意のタイミングで無効化できます。
コンソールを使用してアクセスログの作成を無効にするには
-
MediaPackage コンソール (https://console.aws.amazon.com/mediapackage/
) を開きます。 チャンネルまたはパッケージンググループを選択します。
-
[Edit] (編集) を選択します。
-
[Access logging] (アクセスログ記録) セクションで、[Ingress access logging] (受信アクセスログ記録) か [Egress access logging] (送信アクセスログ記録) のどちらか (または両方) の選択を解除します。
-
[Save changes] (変更の保存) をクリックします。
AWS CLI を使用してチャネルのアクセスログ記録を無効にするには
アクセスのログ記録を無効にするには、configure-logs
コマンドを使用します。configure-logs
コマンドに、宣言されていないアクセスログパラメータが 1 つ以上存在する場合、それらと対応するアクセスログは無効になります。次のコマンド例では、チャネルに対して送信アクセスログが有効化され、受信アクセスログは無効化されます。
aws mediapackage configure-logs --id
channel-name
--egress-access-logs {}
このコマンドの戻り値はありません。
AWS CLI を使用してパッケージンググループのアクセスログ記録を無効にするには
アクセスのログ記録を無効にするには、configure-logs
コマンドを使用します。configure-logs
コマンドに、宣言されていないアクセスログパラメータが 1 つ以上存在する場合、それらと対応するアクセスログは無効になります。例えば、以下のコマンドでは configure-logs
に --egress-access-logs
が含まれていないため、送信ログが無効になります。
aws mediapackage configure-logs --id
package-group-name
このコマンドの戻り値はありません。
アクセスログの形式
アクセスログファイルは、一連の JSON 形式のログレコードで構成されており、各ログレコードは 1 つのリクエストを表します。ログ内のフィールドの順序は変わることがあります。チャネルでの送信アクセスログの例を次に示します。
{ "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 アドレス。
- processingTime
-
MediaPackage でリクエストの処理に要した秒数。これは、リクエストの最終バイトが受信されてから、レスポンスの先頭バイトが送信されるまでの時間を計測した値です。
- statusCode
-
レスポンスの HTTP ステータスの数値。
- receivedBytes
-
MediaPackage サーバーが受信するリクエストボディのバイト数。
- sentBytes
-
MediaPackage サーバーが送信するレスポンスボディのバイト数。この値は、多くの場合、サーバーレスポンスに含まれている
Content-Length
ヘッダーの値と同じです。 - method
-
リクエストに使用された HTTP リクエストメソッド:DELETE、GET、HEAD、OPTIONS、PATCH、POST、または PUT。
- request
-
リクエスト URL。
- protocol
-
リクエストに使用されるプロトコルのタイプ (HTTP など)。
- userAgent
-
リクエスト送信元のクライアントを特定する user-agent 文字列 (二重引用符で囲まれます)。この文字列は、1 つ以上の製品 ID (製品/バージョン) で構成されます。文字列が 8 KB より長い場合は切り捨てられます。
- account
-
リクエストを行うために使用されたアカウントの AWS アカウント ID。
- channelId
-
リクエストを受信したチャネルの ID。
- channelArn
-
リクエストを受信したチャネルの Amazon リソースネーム (ARN)。
- domainName
-
TLS ハンドシェイク中にクライアントから提供される SNI (Server Name Indication) ドメイン (二重引用符で囲まれます)。クライアントで SNI をサポートしていない場合、あるいはドメインが証明書と一致せず、デフォルトの証明書がクライアントに提示された場合、この値は
-
となります。 - requestId
-
各リクエストを一意に識別するために MediaPackage で生成される文字列。
- endpointId
-
リクエストを受信したエンドポイントの ID。
- endpointArn
-
リクエストを受信したエンドポイントの Amazon リソースネーム (ARN) 。
ログのフィールドの順序は変わることがあります。
アクセスログを読み取る
MediaPackage は、Amazon CloudWatch Logs にアクセスログを書き込みます。CloudWatch Logs の一般料金が適用されます。アクセスログを読み取る際には、CloudWatch Logs のインサイトを利用します。CloudWatch Logs インサイトの使用方法の詳細については、AWS CloudWatch Logs ユーザーガイドの「CloudWatch Logs Insights を使用したログデータの分析」を参照してください。
注記
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() byendpointId
例 アセットごとのステータスコードを表示します。
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)