• 検索結果がありません。

CDNext ガイドライン:アクセスログ提供機能について

N/A
N/A
Protected

Academic year: 2021

シェア "CDNext ガイドライン:アクセスログ提供機能について"

Copied!
12
0
0

読み込み中.... (全文を見る)

全文

(1)

アクセスログ提供機能について

(2)

CDNext管理画面からアクセスログ出力設定を行うと、FTPサーバーからアクセスログファイルを取得で

きるようになります。

■ はじめに

エンドユーザー

Step1

アクセスログ出力設定

Step2

アクセスログの取得

Jストリーム

CDNext

Jストリーム

FTPサーバー

Step1 CDNext:アクセスログ出力設定

該当CDNホストのアクセスログ出力設定、ログ取得用 FTPユーザー設定を行います。

詳細は、「CDNext利用マニュアル」内、

[3-8 アクセスログ提供機能]

をご参照ください。

Step2 FTPサーバー:アクセスログの取得

ログ取得用 FTPユーザーで、FTPサーバーにログインし、アクセスログを取得します。

ここでは、FTPサーバーから取得できるアクセスログについて説明します。

1. アクセスログ提供機能について

本ガイドラインではCDNextのアクセスログ提供機能について説明します。

またアクセスログの収集、結合を行うシェルスクリプトのサンプルも記載しておりますので、ご活用くだ

さい。

(3)

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 コマンドなどで利用可能です。

(4)

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

※次ページより「ファイルリスト」「アクセスログ」について説明します。

■凡例

(5)

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 毎時、アクセスログを収集する場合 • 設置ファイルリストを確認し、新たに出力されたアクセスログを収集 • 削除ファイルリスト、リカバリファイルリストを確認し、すでに収集したアク セスログを差し替える

(6)

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"

(7)

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

(8)

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)です。

(9)

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 ..."

■Apache combined

エンドユーザーのリクエスト情報をスペース区切りにしたデータが1レコードとなります。レコードの区

切りは、改行(LF)です。

各フィールドの意味は以下の通りです。

(10)

1-5 アクセスログ提供機能における留意事項

■アクセスログの確定出力について

アクセスログ出力設定を行った CDN ホストのアクセスログは、およそ2時間後から、FTP サーバーの所

定のディレクトリに出力されます。アクセス負荷や障害等により、出力遅延、削除、リカバリが発生する

場合がありますが、翌日の午後12時までには確定出力します。もし、翌日の午後12時までに確定出力

ができない場合には、「アカウント管理者」のメールアドレス宛に通知が行われます。

■アクセスログの利用シーンについて

アクセスログは、障害によるレコード欠損、レコード重複を除き、99.999% の精度を目標としてベスト

エフォートで提供しています。特にトレンド分析や速報データとして最適です。

■アクセスログ出力について

アクセスが無い場合、ディレクトリ、アクセスログ、ファイルリストは出力されません。

■ディレクトリ名、ファイル名に含まれる日時情報について

アクセスログレコードのタイムスタンプをもとに生成されます。

■ディレクトリ、ファイルの保持期間について

アクセスログは出力後 40 日間、参照することができますのでその間に取得してください。

80 日間、アクセスログ出力が行われないと VHOST ID ディレクトリは削除されます。ご注意ください。

ここでは、アクセスログ提供機能における留意事項について説明します。

(11)

1-6 アクセスログ処理スクリプトサンプル

アクセスログの収集、結合を行うスクリプトのサンプルです。

適宜ご参考ください。

※動作を保証するものではありませんので、動作確認のうえご活用ください

■Unix 系 OS 向け(bash)

# ログインユーザー名

FTP_LOGIN_USERNAME="clNNN_name"

# ログインパスワード

FTP_LOGIN_PASSWORD="password"

# 対象 CDN ホストの VHOST ID

# 例)0123456789abcdef0123456789abcdef

TARGET_VHOST_ID="vhost_id"

# 対象日付

# 例)20170426

TARGET_DATE="yyyymmdd"

# ファイル取得

wget -nv ftp://cdnext-log-store.stream.ne.jp/any/${TARGET_VHOST_ID}/${TARGET_DATE}/ ¥

--user ${FTP_LOGIN_USERNAME} --password ${FTP_LOGIN_PASSWORD} -r -P ${TARGET_DATE}

# 取得ファイルログ行数確認

find ${TARGET_DATE}/ -type f -print0 | xargs -r0 zcat |wc -l

# ファイル結合

find ${TARGET_DATE}/ -type f | sort | xargs cat >> ${TARGET_DATE}.gz

# 結合後ファイルログ行数確認

zcat ${TARGET_DATE}.gz |wc -l

# 日時昇順でソート(LTSV 向け)

# zcat ${TARGET_DATE}.gz | sort -k5,5 > sorted.log

# 日時昇順でソート(J-Stream 独自、Apache combined 向け)

# zcat ${TARGET_DATE}.gz | sort -k4,4 > sorted.log

(12)

■Windows 系 OS 向け(cmd.exe)

※Unix コマンドが使用可能になる Gow(Gnu On Windows)を併用しています。

rem ログインユーザー名

set FTP_LOGIN_USERNAME=clNNN_name

rem ログインパスワード

set FTP_LOGIN_PASSWORD=password

rem 対象 CDN ホストの VHOST ID

rem 例)0123456789abcdef0123456789abcdef

set TARGET_VHOST_ID=vhost_id

rem 対象日付

set TARGET_DATE=yyyymmdd

rem ファイル取得

wget -nv ftp://cdnext-log-store.stream.ne.jp/any/%TARGET_VHOST_ID%/%TARGET_DATE%/ ^

--user %FTP_LOGIN_USERNAME% --password %FTP_LOGIN_PASSWORD% -r -P %TARGET_DATE%

rem 取得ファイルログ行数確認

dir /B /S *.gz | sed -e "s/¥¥/¥//g" | sort | xargs gzip -cd | wc -l

rem ファイル結合

dir /B /S *.gz | sed -e "s/¥¥/¥//g" | sort | xargs gzip -cd | gzip -c > %TARGET_DATE%.gz

rem 結合後ファイルログ行数確認

参照

関連したドキュメント

土壌汚染状況調査を行った場所=B地 ※2 指定調査機関確認書 調査対象地 =B地 ※2. 土壌汚染状況調査結果報告シート 調査対象地

・電源投入直後の MPIO は出力状態に設定されているため全ての S/PDIF 信号を入力する前に MPSEL レジスタで MPIO を入力状態に設定する必要がある。MPSEL

機排水口の放出管理目標値を示す。 画においては1号機排水口~4号機排水口の放出管理目標値を設定していない。.. 福島第二原子力発電所 )

Dual I/O リードコマンドは、SI/SIO0、SO/SIO1 のピン機能が入出力に切り替わり、アドレス入力 とデータ出力の両方を x2

事故シーケンスグループ「LOCA

性能  機能確認  容量確認  容量及び所定の動作について確 認する。 .

性能  機能確認  容量確認  容量及び所定の動作について確 認する。 .

性能  機能確認  容量確認  容量及び所定の動作について確 認する。 .