1. クラウドストレージのバケット作成
まず始めにアクセスログを保存するクラウドストレージのバケットを作成します。
「クラウドストレージ申し込みからオブジェクトアップロードまでの流れ」を参考に、バケットを作成してください。
2. サービスの作成
次にCDNでサービスを作成します。
「CDNの申し込みについて」を参考に、サービスを作成してください。
サービスを有効化し正常に配信されていることが確認できたら、クローンを行ってください。
クローンを行うと、「Draft」ステータスのバージョンが作成されます。
このバージョンに対してログストリーミングの設定を行っていきます。
3. APIの使用準備
ログストリーミングの設定には、APIを使用します。
APIの使用にあたって下記のパラメータが必要となります。
① CDN サービスID
② CDN サービスバージョン
③ CDN APIアカウントキー
④ name
⑤ bucket_name
⑥ user
⑦ secret_key
⑧ period
その後、CDNのAPIアカウントキーを確認します。
④ nameページ下部の「GCPサービスアカウント管理」からGCPサービスアカウントを追加してください。
項目 | 値 |
サービスアカウントID | 英字で始まる半角英数字 (大文字およびidcf-から始まるIDは使用不可) |
名前 | 任意の名前(タグ) |
役割 | 「クラウドストレージ」→「ストレージ管理者」を選択 |
追加が完了すると、jsonファイルがダウンロードされます。次の⑦のパラメータで使用します。
⑦ secret_key
GCPサービスアカウントの秘密鍵です。
秘密鍵は、⑥でダウンロードしたjsonファイル内に、”private_key”という項目で記載されています。
例:-----BEGIN PRIVATE KEY-----¥nABCD … 1234¥n-----END PRIVATE KEY-----¥n
⑧ period
CDNがログを貯め、バケットに出力する間隔を指定します。
デフォルトは3600秒(1時間)です。
例:1800
4. ログストリーミングの設定
APIを使用し、ログストリーミングの設定を行います。
「3 .APIの仕様準備」で確認したパラメータを使いAPIを実行します。
ここではcurlコマンドで実行する際の例を紹介します。
# curl -X POST https://cdn.idcfcloud.com/api/v1/service/①CDNサービスID/version/②CDNサービスバージョン/logging/gcs \ -H 'X-IDCF-CDN-APIKEY: ③CDNAPIアカウントキー' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{"name": "④name", "bucket_name": "⑤bucket_name", "user": "⑥user", "secret_key": "⑦secret_key","period": "⑧period"}'
実行内容例
# curl -X POST https://cdn.idcfcloud.com/api/v1/service/abcd1234EFGH5678/version/2/logging/gcs \ -H 'X-IDCF-CDN-APIKEY: 1234567890_aBcDeFgHiJkLmNoPqRsTuVwXyZ' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{"name": "setting-logstream-test", "bucket_name": "logstream-test-idcf", "user": "logstream-test-idcf@idcf-test-20001111-111111.iam.gserviceaccount.com", "secret_key": "-----BEGIN PRIVATE KEY-----¥nABCD … 1234¥n-----END PRIVATE KEY-----¥n","period": "1800"}'
実行結果例
{"name":"setting-logstream-test","bucket_name":"logstream-test-idcf","user":"logstream-test-idcf@idcf-test-20001111-111111.iam.gserviceaccount.com","secret_key":"-----BEGIN PRIVATE KEY-----¥nABCD … 1234¥n-----END PRIVATE KEY-----¥n","period":"1800","service_id":"abcd1234EFGH5678","version":"2","deleted_at":null,"updated_at":"2019-08-19T01:36:07Z","gzip_level":"0","format":"%h %l %u %t \"%r\" %\u003es %b","placement":null,"public_key":null,"created_at":"2019-08-19T01:36:07Z","format_version":"2","timestamp_format":"%Y-%m-%dT%H:%M:%S.000","path":null,"message_type":"classic","response_condition":""}
実行後、設定が投入されているかクラウドコンソールからも確認します。
対象のサービス名を選択し、「Show VCL」をクリックします。
5. サービスの有効化、確認
最後にサービスを有効化し、正常にコンテンツが配信されているかどうか確認してください。
ログストリーミングが正しく設定されている場合、⑧ periodで指定した秒数が経過すると、クラウドストレージのバケットにログファイルがストリーミングで保存されます。
ファイルをダウンロードし、正常にアクセスログが保存されていることを確認してください。
6. 設定の削除と更新
APIを使ったログストリーミングの設定の削除と更新の方法をご紹介します。
なおこの設定を行うに当たっては次のパラメータを使用します。
① CDN サービスID
② CDN サービスバージョン
③ CDN APIアカウントキー
④ name
⑤ bucket_name
⑥ user
⑦ secret_key
⑧ period
各パラメータについては項番3に説明がありますので、ご確認ください。
また各設定を行う前にクラウドコンソール上からサービスのクローンを行なってください。
クローンを行うと、「Draft」ステータスのバージョンが作成されます。
このバージョンに対してログストリーミングの設定の削除と更新を行っていきます。
6-1.ログストリーミング設定の削除
ログストリーミングの設定を削除する方法を紹介します。
削除にあたっては次のパラメータが必要となります。
①CDN サービスID
②CDN サービスバージョン
③CDN APIアカウントキー
④name
各パラメータの確認方法はこのご利用ガイドの項番3をご確認ください。
ここではcurlコマンドで実行する際の例を紹介します。
curl -X DELETE https://cdn.idcfcloud.com/api/v1/service/①CDNサービスID/version/②CDNサービスバージョン/logging/gcs/④name \ -H 'X-IDCF-CDN-APIKEY: ③CDNAPIアカウントキー' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json'
実際の設定例
curl -X DELETE https://cdn.idcfcloud.com/api/v1/service/abcd12345efgh/version/2/logging/gcs/logstream_test \ -H 'X-IDCF-CDN-APIKEY: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json'
実行結果例
{ "status": "ok" }
実行後、設定が投入されているかクラウドコンソールからも確認します。
対象のサービス名を選択し、「Show VCL」をクリックします。
対象の設定が削除されていることが確認できたら完了です。
6-2.ログストリーミング設定の更新
設定の更新を行うにあたっては次のパラメータが必要となります。
①CDN サービスID
②CDN サービスバージョン
③CDN APIアカウントキー
④name
⑤bucket_name
⑥user
⑦secret_key
⑧period
更新したいパラメータを変更して次のような設定を行なってください。
curl -X PUT https://cdn.idcfcloud.com/api/v1/service/①CDNサービスID/version/②CDNサービスバージョン/logging/gcs/④name(既存のログストリーミング設定の名前) \ -H 'X-IDCF-CDN-APIKEY: ③CDNAPIアカウントキー' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{"name": "④name", "bucket_name": "⑤bucket_name", "user": "⑥user", "secret_key": "⑦secret_key","period": "⑧period"}'
特定のパラメータのみの更新であっても、上記のパラメータは全て必要になります。
更新対象のパラメータのみ指定してもエラーとなりますのでご注意ください。
6-3.ログフォーマットの設定(参考)
ログフォーマットの設定を更新する方法を紹介します。
ログフォーマットの設定を行うにあたっては次のパラメータが必要となります。
①CDN サービスID
②CDN サービスバージョン
③CDN APIアカウントキー
④name
⑤bucket_name
⑥user
⑦secret_key
⑧period
⑨logformat
⑨logformatは次のような形式で設定します。
設定パラメータ例
%h %H %v %t %r %>s
各パラメータの意味
%h リモート IP アドレス
%H リクエストのプロトコル
%v リクエストのドメイン名
%t リクエストが受信された時刻。標準の英語形式(例 01/Jan/1970:00:00:00 -0700)最後の数字は GMT からのタイムゾーンオフセットを示します。
%r リクエストの最初の行
%>s 最後のリクエストのステータス
設定可能なログフォーマットに関しては、こちらをご確認ください。
次のような設定を行います。
curl -X PUT https://cdn.idcfcloud.com/api/v1/service/①CDNサービスID/version/②CDNサービスバージョン/logging/gcs/④name(既存のログストリーミング設定の名前) \ -H 'X-IDCF-CDN-APIKEY: ③CDNAPIアカウントキー' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{"name": "④name","format":"⑨logformat", "bucket_name": "⑤bucket_name", "user": "⑥user", "secret_key": "⑦secret_key","period": "⑧period"}'
実行内容例
# curl -X PUT https://cdn.idcfcloud.com/api/v1/service/abcd1234EFGH5678/version/2/logging/gcs \ -H 'X-IDCF-CDN-APIKEY: 1234567890_aBcDeFgHiJkLmNoPqRsTuVwXyZ' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{"name": "setting-logstream-test", "format":"%h %H %v %t %r %>s", "bucket_name": "logstream-test-idcf", "user": "logstream-test-idcf@idcf-test-20001111-111111.iam.gserviceaccount.com", "secret_key": "-----BEGIN PRIVATE KEY-----¥nABCD … 1234¥n-----END PRIVATE KEY-----¥n","period": "1800"}'