Log serviceを使用すると、インターネットインフォメーションサービス (IIS) アクセスログを収集および分析できます。 このトピックでは、IISアクセスログを使用してWebサイトへのアクセスを監視および分析する方法について説明します。 ページビュー (PV) 、ユニークビジター (UV) 、リクエスタの場所、エラーリクエスト、受信および送信トラフィックなどのデータを取得できます。
始める前に
IISログが収集されます。 詳細については、「IIS構成モードでログを収集する」をご参照ください。
収集プロセス中、Log Serviceはログの内容に基づいてインデックスを自動的に生成します。 必要に応じてインデックスを変更できます。 詳細については、「インデックスの作成」をご参照ください。
このタスクについて
IISは、webサイトの構築とホストに使用できる安全なwebサーバーです。 IISを使用してWebサイトを構築すると、IISアクセスログを収集して分析できます。
次のIIS W3C拡張ログ形式を使用することを推奨します。
logExtFileFlags="Date, Time, ClientIP, UserName, SiteName, ComputerName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Cookie, Referer, ProtocolVersion, Host, HttpSubStatus"
サンプルIISログの例を次に示します。
#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2020-09-08 09:30:26
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2009-11-26 06:14:21 W3SVC692644773 125.67.67.* GET /index.html - 80 - 10.10.10.10 Baiduspider+(+http://www.example.com)200 0 64 185173 296 0
フィールドの接頭辞
接頭辞
説明
s-
Indicatesサーバアクション。
c-
クライアントのアクションを示します。
cs-
クライアントからサーバーへのアクションを示します。
sc-
サーバー間アクションを示します。
フィールド
フィールド
説明
date
クライアントがリクエストを送信する日付。
time
クライアントがリクエストを送信する時点。
s-sitename
クライアントがアクセスしたサイトのインターネットサービス名とインスタンスID。
s-computername
ログが生成されるサーバーの名前。
s-ip
ログが生成されるサーバーのIPアドレス。
cs-method
クライアントが使用するリクエストメソッド (GETやPOSTなど) 。
cs-uri-stem
リクエスト内のURI。
cs-uri-query
HTTPリクエストの疑問符 (?) に続くクエリ文字列。
s-port
サーバーのポート番号。
cs-username
クライアントがサーバーにアクセスするために使用する認証済みドメイン名またはユーザー名。
認証されたユーザーは、
Domain\Username
形式で表示されます。匿名ユーザーはハイフン(-)で表示されます。
c-ip
リクエストを送信するクライアントの実際のIPアドレス。
cs-version
HTTP 1.0やHTTP 1.1など、クライアントが使用するプロトコルのバージョン。
cs(User-Agent)
クライアントが使用するブラウザ。
Cookie
送信または受信されるcookieの内容。 Cookieが送受信されない場合は、ハイフン (-) が表示されます。
referer
クライアントが指示されたサイト。
cs-host
ホスト情報。
sc-status
サーバーから返されたHTTPステータスコード。
sc-substatus
The HTTP substatusコードによって返さサーバー。
sc-win32-status
The Windowsステータスコードによって返さサーバー。
sc-bytes
サーバーによって送信されたバイト数。
cs-bytes
The番号のバイト受信します。
time-taken
リクエストの処理に必要な時間。 単位:ミリ秒。
手順
Log Serviceコンソールにログインします。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
タブで、管理するログストアをクリックします。
検索ボックスにクエリステートメントを入力し、時間範囲を選択します。
クエリステートメントは、searchステートメント | analyticステートメント形式の検索ステートメントと分析ステートメントで構成されます。 詳細については、「検索構文」と「集計関数」をご参照ください。
クライアントIPアドレスの分布に関する統計を収集するには、次のクエリステートメントを実行します。
*| select ip_to_geo("c-ip") as country, count(1) as c group by ip_to_geo("c-ip") limit 100
PVおよびUVの数を計算するには、次のクエリステートメントを実行します。
*| select approx_distinct("c-ip") as uv ,count(1) as pv , date_format(date_trunc('hour', __time__), '%m-%d %H:%i') as time group by date_format(date_trunc('hour', __time__), '%m-%d %H:%i') order by time limit 1000
返される各HTTPステータスコードの割合を計算するには、次のクエリステートメントを実行します。
*| select count(1) as pv ,"sc-status" group by "sc-status"
インバウンドトラフィックとアウトバウンドトラフィックの統計を収集するには、次のクエリ文を実行します。
*| select sum("sc-bytes") as net_out, sum("cs-bytes") as net_in ,date_format(date_trunc('hour', time), '%m-%d %H:%i') as time group by date_format(date_trunc('hour', time), '%m-%d %H:%i') order by time limit 10000
各リクエストメソッドの割合を計算するには、次のクエリステートメントを実行します。
*| select count(1) as pv ,"cs-method" group by "cs-method"
各ブラウザータイプの割合を計算するには、次のクエリ文を実行します。
*| select count(1) as pv, case when "user-agent" like '%Chrome%' then 'Chrome' when "user-agent" like '%Firefox%' then 'Firefox' when "user-agent" like '%Safari%' then 'Safari' else 'unKnown' end as "user-agent" group by case when "user-agent" like '%Chrome%' then 'Chrome' when "user-agent" like '%Firefox%' then 'Firefox' when "user-agent" like '%Safari%' then 'Safari' else 'unKnown' end order by pv desc limit 10
最も頻繁にアクセスされる上位10ページを計算するには、次のクエリ文を実行します。
*| select count(1) as pv, split_part("cs-uri-stem",'?',1) as path group by split_part("cs-uri-stem",'?',1) order by pv desc limit 10