アクセスログ提供機能について
CDNext管理画面からアクセスログ出力設定を行うと、FTPサーバーからアクセスログファイルを取得で
きるようになります。
■ はじめに
エンドユーザー
Step1
アクセスログ出力設定
Step2
アクセスログの取得
Jストリーム
CDNext
Jストリーム
FTPサーバー
Step1 CDNext:アクセスログ出力設定
該当CDNホストのアクセスログ出力設定、ログ取得用 FTPユーザー設定を行います。
詳細は、「CDNext利用マニュアル」内、
[3-8 アクセスログ提供機能]
をご参照ください。
Step2 FTPサーバー:アクセスログの取得
ログ取得用 FTPユーザーで、FTPサーバーにログインし、アクセスログを取得します。
ここでは、FTPサーバーから取得できるアクセスログについて説明します。
1. アクセスログ提供機能について
本ガイドラインではCDNextのアクセスログ提供機能について説明します。
またアクセスログの収集、結合を行うシェルスクリプトのサンプルも記載しておりますので、ご活用くだ
さい。
1-1 ログ取得用 FTPサーバー情報
■ログイン情報
アクセスログを取得するためには、FTPサーバーへのログインが必要です。
ログインに必要な情報は以下の通りです。
No 項目 値 1ホスト名(必須)
cdnext-log-store.stream.co.jp
2 ユーザー名(必須) 「ログ取得用 FTPユーザー管理」で設定した「ユーザーID」を指定します。 3 パスワード 「ログ取得用 FTPユーザー管理」で設定した「パスワード」を指定します。パスワードを使用しない場合、秘密鍵の設定が必要です。 4 秘密鍵 「ログ取得用 FTPユーザー管理」で設定した「SFTP公開鍵」のペアとなる秘密鍵を指定します。※FTPサーバーには、「ログ取得用 FTPユーザー管理」で設定した「アクセス許可IPリスト」のネット
ワークに接続している端末からのみアクセスすることができます。
■接続情報
ログ取得用 FTPサーバーには、FTP/FTPS/SFTPで接続することができます。
それぞれのプロトコルの仕様は以下の通りです。
No プロトコル 説明1 FTP(File Transfer Protocol) ファイル転送を行うプロトコルです。TCP 21番ポートに接続してください。 FFFTP、WinSCP などで利用可能です。
2 FTPS
(File Transfer Protocol over SSL/TLS)
FTP を SSL または TLS で暗号化するプロトコルです。 TCP 21番ポートに接続してください。
FFFTP、WinSCP などで利用可能です。
3 SFTP
(SSH File Transfer Protocol)
SSH を用いてファイル転送を行うプロトコルです。 TCP 2122番ポートに接続してください。
管理画面より公開鍵を登録することで、鍵交換による利用が可能です。 WinSCP、Linux、Unix コマンドなどで利用可能です。
No 文字列 意味 1 <%VHOST ID%> CDNホストの「設定」画面「FQDN」タブ内の「CNAME情報」項目に表示 される32桁の文字列です。CDNホスト1つにつき、1つのVHOST IDがあ ります。 例)0123456789abcdef0123456789abcdef 2 <%ファイルリスト%> ファイルリストです。例)20170216_file_list_ltsv.txt 3 <%日付%> アクセスログ出力処理が行われた8桁の日付です。例)20170216 4 <%時%> アクセスログ出力処理が行われた2桁の時間です。例)22 5 <%フォーマット%> アクセスログのフォーマットです。ltsv、combined、legacyのいずれかになります。 6 <%N%>、<%M%> アクセスログ出力処理の際、アクセス状況、設備状況に応じて付与される3 桁の数字です。 例)012
■ディレクトリ構造
アクセスログは、VHOST IDごと(= CDNホストごと)、日時ごと、アクセスログフォーマットごとに
出力されます。以下は、FTPサーバーのディレクトリ構造を簡単に表した図です。
/(アカウントディレクトリ)
any/
<%VHOST ID%>/
file_list/
<%日付%>/
<%時%>/
<%日付%>_<%ファイルリスト%>_<%フォーマット%>.txt
<%VHOST ID%>_<%日付%><%時%>_<%N%>_<%フォーマット%>-<%M%>.log.gz
※次ページより「ファイルリスト」「アクセスログ」について説明します。
■凡例
1-2 ファイルリスト
■ファイルリストとは
ファイルリストとは、VHOST ID ディレクトリ配下のアクセスログのファイル一覧が記載されたテキス
トファイルです。アクセスログは、アクセス負荷や障害等により、出力遅延、削除、リカバリが発生する
場合があります。ファイルリストには、アクセスログの出力、削除、リカバリについて記載されており、
VHOST ID ごと(= CDN ホストごと)、日ごと、アクセスログフォーマットごとに出力されます。アク
セスログ収集バッチ作成時等にご活用ください。
■ファイルリスト例
例)20170216_file_list_ltsv.txt
(省略) 20170216/22/0123456789abcdef0123456789abcdef_2017021622_001_ltsv-012.log.gz 2017/02/17 00:01:12 20170216/22/0123456789abcdef0123456789abcdef_2017021622_001_ltsv-013.log.gz 2017/02/17 00:01:12 20170216/22/0123456789abcdef0123456789abcdef_2017021622_001_ltsv-014.log.gz 2017/02/17 00:01:12 20170216/22/0123456789abcdef0123456789abcdef_2017021622_001_ltsv-015.log.gz 2017/02/17 00:01:12 20170216/22/0123456789abcdef0123456789abcdef_2017021622_001_ltsv-016.log.gz 2017/02/17 00:01:12 20170216/22/0123456789abcdef0123456789abcdef_2017021622_001_ltsv-017.log.gz 2017/02/17 00:01:12 20170216/22/0123456789abcdef0123456789abcdef_2017021622_001_ltsv-018.log.gz 2017/02/17 00:01:12 20170216/22/0123456789abcdef0123456789abcdef_2017021622_001_ltsv-019.log.gz 2017/02/17 00:01:12 20170216/22/0123456789abcdef0123456789abcdef_2017021622_001_ltsv-020.log.gz 2017/02/17 00:01:12 20170216/22/0123456789abcdef0123456789abcdef_2017021622_001_ltsv-021.log.gz 2017/02/17 00:01:12 (省略)■ファイルリストの種類
下記3種類があります。「記載内容」の項目をタブ区切りしたデータが1レコードとなります。レコード
の区切りは、改行(LF)です。
No 種類 出力 記載内容 例 1 設置ファイルリスト アクセスログと一緒に必ず出力 • アクセスログのパス • 設置日時 20170216_file_list_ltsv.txt 2 削除ファイルリスト 弊社で削除作業実施時に出力 • アクセスログのパス • 削除日時 20170216_file_list_delete_ltsv.txt 3 リカバリファイルリスト 弊社でリカバリ作業実施時に出力 • アクセスログのパス • 再生成日時 20170216_file_list_recovery_ltsv.txt■ファイルリストの活用方法例
ファイルリストを参照いただくと柔軟なアクセスログ収集が可能となります。ぜひご活用ください。
No アクセスログの収集運用 活用方法例 1 翌日午後12時(= 確定出力時刻)以降に、前日分のアクセスログ を収集する場合 • ファイルリストを参照せずに、アクセスログを収集 2 毎時、アクセスログを収集する場合 • 設置ファイルリストを確認し、新たに出力されたアクセスログを収集 • 削除ファイルリスト、リカバリファイルリストを確認し、すでに収集したアク セスログを差し替える1-3 アクセスログ
■アクセスログとは
CDN ホストにエンドユーザーがアクセスすると、CDN サーバーにアクセスログが出力されます。アクセ
スログには、エンドユーザーのリクエスト元 IP アドレス、アクセス日時をはじめ、様々な情報が出力さ
れます。アクセス解析にご活用ください。
■アクセスログフォーマット
CDNext で出力可能なアクセスログフォーマットは以下の通りです。ご利用用途にあわせて、フォーマッ
トをお選びください。
No アクセスログフォーマット 説明 1 LTSV J-Stream CDNext独自のLTSVフォーマットです。2 J-Stream独自 旧J-Stream WEB-CDNサービスのログフォーマットです。
3 Apache combined RefererとUser-Agentを含む、Apache HTTPサーバーのログフォーマットです。
※次ページより、それぞれの「アクセスログフォーマット」のフィールドについて説明します。
■アクセスログレコードのサンプル
それぞれのフォーマットで出力されるレコードのサンプルです。
マニュアルの表示上の都合のため、以下ご了承ください。
※LTSV のフィールド区切り文字(タブ文字)を <%TAB%> と表示しています
※適宜、途中改行をしています
・LTSV
c-ip:198.51.100.1<%TAB%>vhost-id:0123456789abcdef0123456789abcdef<%TAB%>
req-id:0123456789abcdef0123456789abcdef/1.2.3.4:12/12345/12345/12345/12345<%TAB%>c-user:-<%TAB%>
date-time:[04/Dec/2017:10:01:42 +0900]<%TAB%>method:GET<%TAB%>
origin-uri:http://origin.example.com/dir1/dir2/filename.ext?query_key=value<%TAB%>
proto:HTTP/1.1<%TAB%>status:404<%TAB%>sc-bytes:495<%TAB%>
c-referer:"http://referer.example.com/dir/file?query_key=value"<%TAB%>
time-taken:0.001<%TAB%>length:225<%TAB%>cache-status:HIT/F<%TAB%>
request:"GET https://hostname.example.com/dir1/dir2/filename.ext?query_key=value HTTP/1.1"<%TAB%>
content-type:"text/html; charset=iso-8859-1"<%TAB%>x-forwarded:"198.51.100.2,unknown"<%TAB%>
user-agent:"MobileSafari/604.1 CFNetwork/889.9 Darwin/17.2.0"<%TAB%>
last-modified:"Fri, 24 Feb 2017 11:35:21 GMT"<%TAB%>etag:"¥x223-549451ff2a722¥x22"<%TAB%>
vary:"Accept-Encoding, Accept-Language"<%TAB%>user-add-key:"|Vary;Accept-Encoding=gzip"<%TAB%>
cache-key:0123456789abcdef0123456789abcdef<%TAB%>user-data:""
・J-Stream独自
198.51.100.1 - - [04/Dec/2017:10:00:10 +0900]
"GET http://origin.example.com/dir1/dir2/filename.ext?query_key=value HTTP/1.1" 200 123830
"http://referer.example.com/dir/file?query_key=value" 0.040 123328 MISS/S
GET https://hostname.example.com/dir1/dir2/filename.ext?query_key=value 192.168.51.70:8080 “text/html”
“198.51.100.2,unknown” "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
・Apache combined
198.51.100.1 - - [04/Dec/2017:10:00:11 +0900] "GET http://origin.example.com/dir1/dir2/filename.ext?query_key=value
HTTP/2.0" 304 170 "http://referer.example.com/dir/file?query_key=value"
"Mozilla/5.0 (Linux; Android 7.1.1; 507SH Build/S1116) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84
Mobile Safari/537.36"
1-4 アクセスログフォーマット
■LTSV
エンドユーザーのリクエスト情報を「キー:値」のペアで、タブ区切りにしたデータが1レコードとなり
ます。レコードの区切りは、改行(LF)です。
各フィールドの意味は以下の通りです。
No フィールド 説明 例1 {c-ip} クライアントIP c-ip:198.51.100.1
2 {vhost-id} VHOST_ID 英数32桁 vhost-id:0123456789abcdef0123456789abcdef
3 {req-id} リクエストに一意なID req-id:0123456789abcdef0123456789abcdef/1.2.3.4:12/1234 5/12345/12345/12345
4 {c-user} ユーザー名(基本認証時に出力) c-user:username
5 {date-time} リクエスト処理日時 date-time:[28/Feb/2017:13:00:46 +0900]
6 {method} リクエストのメソッド method:GET
7 {origin-uri} オリジンURL origin-uri:http://origin.example.com/dir1/dir2/filename.ext?quer y_key=value 8 {proto} HTTPプロトコル proto:HTTP/1.1 9 {status} HTTPステータス status:200 10 {sc-bytes} HTTPヘッダを含む転送バイト数 sc-bytes:1234 11 {c-referer} リファラ、空の場合は"-" c-referer:"http://referer.example.com/dir/file?query_key=va lue" 12 {time-taken} リクエスト処理時間(s) time-taken:0.006
13 {length} 応答コンテンツサイズ(byte) length:1234
14 {cache-status} キャッシュステータス cache-status:HIT/F
15 {request} メソッド リクエストURL プロトコル
request:"GET
https://hostname.example.com/dir1/dir2/filename.ext?que ry_key=value HTTP/1.1"
16 {content-type} コンテンツのMIME type content-type:"text/html"
17 {x-forwarded} リクエストに付与されたX-Fowarded-For 空の場合は"-" x-forwarded:"198.51.100.2,unknown"
18 {user-agent} ユーザーエージェント 空の場合は"-" user-agent:"Mozilla ..."
19 {last-modified} オリジンがコンテンツに付与したLast-Modified
空の場合は"-“ last-modified:"Fri, 24 Feb 2017 11:35:21 GMT"
20 {etag} オリジンがコンテンツに付与したEtag 空の場合は"-" etag:"¥x223-549451ff2a722¥x22"
21 {vary} オリジンがコンテンツに付与したVary 空の場合は"-" vary:"Accept-Encoding, Accept-Language"
22 {user-add-key} 同一URLで別キャッシュとなる指定条件 空の場合は"" user-add-key:"|Vary;Accept-Encoding=gzip"
23 {cache-key} CDNext内部利用情報(キャッシュキー) cache-key:0123456789abcdef0123456789abcdef
No ログフィールド 説明 例 1 {c-ip} クライアントIP 198.51.100.1 2 - 常に "-" -3 {c-user} ユーザー名(基本認証時に出力) username 4 {date-time} リクエスト処理日時 [28/Feb/2017:13:00:46 +0900] 5 “{method}{origin-uri} {proto}”
メソッド オリジンURL プロトコル "GET http://origin.example.com/dir1/dir2/filename.ext?query_k ey=value HTTP/1.1" 6 {status} HTTPステータス 200 7 {sc-bytes} HTTPヘッダを含む転送バイト数 1234 8 “{c-referer}” リファラ、空の場合は"-" "http://referer.example.com/dir/file?query_key=value" 9 {time-taken} リクエスト処理時間(s) 0.006 10 {length} 応答コンテンツサイズ(byte) 1234 11 {cache-status} キャッシュステータス HIT/F 12 {request-method} リクエストのメソッド GET
13 {request} リクエストのメソッド/URI/プロトコル https://hostname.example.com/dir1/dir2/filename.ext?query_key=value
14 {upstream} CDNext内部利用情報 192.168.x.x:8080
15 “{content-type}” コンテンツのMIME type "text/html"
16 {x-forwarded} リクエストに付与されたX-Fowarded-For 空の場合は"-" "198.51.100.2,unknown"
17 {user-agent} ユーザーエージェント 空の場合は"-" "Mozilla ..."
■J-Stream 独自
エンドユーザーのリクエスト情報をスペース区切りにしたデータが1レコードとなります。レコードの区
切りは、改行(LF)です。
No ログフィールド 説明 例
1 {c-ip} クライアントIP 198.51.100.1
2 {"-"} 常に "-"
-3 {c-user} ユーザー名(基本認証時に出力) username
4 {date-time} リクエスト処理日時 [28/Feb/2017:13:00:46 +0900]
5 {request} メソッド リクエストURL プロトコル "GET https://hostname.example.com/dir1/dir2/filename.ext?que ry_key=value HTTP/1.1" 6 {status} HTTPステータス 200 7 {sc-bytes} HTTPヘッダを含む転送バイト数 %O相当(byte) 1234 8 {c-referer} リファラ、空の場合は"-" "http://referer.example.com/dir/file?query" 9 {user-agent} ユーザーエージェント 空の場合は"-" "Mozilla ..."